[reg].net的regular expression比對,預設是大小寫有差別喔

  • 154
  • 0

[reg].net的regular expression比對,預設是大小寫有差別喔

舉例來說,以下兩種寫法,在.net的regular expression是不同的喔:
第一種寫法只會抓到小寫的a href的超連結

MatchCollection msHref = Regex.Matches(html, @"(?<href><a href=.*?>(?<hreftext>.*?)</a>)", RegexOptions.Singleline );

第二種寫法只會抓到大寫的A HREF的超連結

MatchCollection msHref = Regex.Matches(html, @"(?<href><A HREF=.*?>(?<hreftext>.*?)</A>)", RegexOptions.Singleline );

如果希望不區分大小寫的話,可以在做Regex.Matches的時候,加上額外的參數:RegexOptions.IgnoreCase,像是這樣即可:

MatchCollection msHref = Regex.Matches(html, @"(?<href><A HREF=.*?>(?<hreftext>.*?)</A>)", RegexOptions.Singleline | RegexOptions.IgnoreCase);

這篇大概是這樣。。。