regex.matches 不匹配

regex.matches notmatching

我尝试这样做了 5 个小时,我绝望了,我会发疯的。 请帮助我。

var start   =  new  List<string>( ) {"Report", "Audit"  , "Committee" } ;
string expresss= start[0] + @"(.*?)\n{0,1}(.*?)" + start[1] + @"(.*)$";
MatchCollection matches = Regex.Matches(text, "(?im)"+ expresss );

此代码无法找到“"REPORT OF THE AUDIT COMMITEE"”

但在这里可以使用 sublime text3 的正则表达式找到它。

请帮助我通过 C# 正则表达式代码找到“"REPORT OF THE AUDIT COMMITEE"”。 谢谢。

看起来这既是区分大小写的事实,也是您没有跨多行匹配正则表达式的事实(感谢@stribizhev 发现了这一点)。

使用:

MatchCollection matches = Regex.Matches(text, "(?im)"+ expresss,
  RegexOptions.Multiline | RegexOptions.IgnoreCase );

我无法从上下文中判断,但可能也值得考虑使用 RegexOptions.CultureInvariant 是否也合适。

编辑:好的,我不知道 C# 可以使用 (?im) 进行大小写 + 多行匹配。在那种情况下,如果 (?im) 没有,则不确定这对您有用。我只是取消了我的测试选项,让 (?im) 保持打开状态,它确实匹配。