C# 正则表达式';忽略大小写';选项没有';当';已编译';选项已指定
我有以下非常简单的正则表达式,它匹配字符串中的HTML标记。我设置了不区分大小写的选项,因此标记的大写并不重要。但是,当设置“compiled”选项时,“IgnoreCase”选项似乎被忽略 示例代码:C# 正则表达式';忽略大小写';选项没有';当';已编译';选项已指定,c#,regex,C#,Regex,我有以下非常简单的正则表达式,它匹配字符串中的HTML标记。我设置了不区分大小写的选项,因此标记的大写并不重要。但是,当设置“compiled”选项时,“IgnoreCase”选项似乎被忽略 示例代码: string text = "<SPAN>blah</SPAN><span>blah</span>"; Regex expr1 = new Regex("</*span>", RegexOptions.IgnoreCase); Rege
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>
string text=“blahblah”;
Regex expr1=new Regex(“,RegexOptions.IgnoreCase);
Regex expr2=new Regex(“,RegexOptions.IgnoreCase&RegexOptions.Compiled);
MatchCollection result1=expr1.Matches(文本);
//给出4个匹配项-、、&
MatchCollection result2=expr2.Matches(文本);
//仅给出2个匹配项-&
有人知道这里发生了什么吗?您使用的是按位或,对于您的标志,您应该使用按位或 此位:
RegexOptions.IgnoreCase & RegexOptions.Compiled
应该是:
RegexOptions.IgnoreCase | RegexOptions.Compiled
我总是犯那个错误。我正在写我的标志,我会大声说“我想要选项A和选项B…”。除了这个问题之外,“
”不是更好的正则表达式吗?是的,在考虑了更多之后,可能更好。