gpt4 book ai didi

c# - 当指定 'Ignore Case' 选项时,正则表达式 'Compiled' 选项不起作用

转载 作者:太空狗 更新时间:2023-10-30 00:01:48 25 4
gpt4 key购买 nike

我有以下非常简单的正则表达式,它匹配字符串中的 HTML 标记。我设置了不区分大小写的选项,因此标签的大小写无关紧要。但是,当设置了 'compiled' 选项时,'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>

有人知道这里发生了什么吗?

最佳答案

您正在为您的标志使用按位与,您应该使用按位或。

这个位:

RegexOptions.IgnoreCase & RegexOptions.Compiled

应该是:

RegexOptions.IgnoreCase | RegexOptions.Compiled

Here is a good article on how flags and enumerations work in respect to C#.

关于c# - 当指定 'Ignore Case' 选项时,正则表达式 'Compiled' 选项不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10534910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com