2012-05-10 29 views
4

我有以下非常简单的正则表达式,这在一个字符串匹配HTML标记的“编译”选项选项不起作用。我有不区分大小写的选项集,所以标签的大小写无关紧要。但是,如果设置了'编译'选项,那么'IgnoreCase'选项似乎被忽略。正则表达式“忽略大小写”时指定

示例代码:

string text = "<SPAN>blah</SPAN><span>blah</span>"; 
Regex expr1 = new Regex("</*span>", RegexOptions.IgnoreCase); 
Regex expr2 = new Regex("</*span>", RegexOptions.IgnoreCase & RegexOptions.Compiled); 

MatchCollection result1 = expr1 .Matches(text); 
//gives 4 matches- <SPAN>,</SPAN>,<span> & </span> 
MatchCollection result2 = expr2 .Matches(text); 
//only gives 2 matches- <span> & </span> 

有没有人有一个想法是怎么回事呢?

+1

除了问题,就不会 “''” 是更好的正则表达式? – Hinek

+0

是的,思考一些之后,可能会更好。 – John

回答