C#正则表达式:在模式中忽略大小写?

85

我正在使用System.Text.RegularExpressions.Regex.IsMatch(testString, regexPattern)在字符串中进行一些搜索。

是否有一种方法可以在regexPattern字符串中指定模式应该忽略大小写?(即不使用Regex.IsMatch(testString, regexPattern, RegexOptions.IgnoreCase))

有没有办法在正则表达式模式中指定忽略大小写?

1个回答

163

(?i)匹配模式中表示不区分大小写,(?-i)表示恢复到原来的区分大小写模式。

(?i)foo(?-i)bar

匹配 FOObar,但不匹配 fooBAR

编辑:我应该说 (?-i) 开始区分大小写匹配 - 如果您想要整个模式不区分大小写,则不需要“结束”(?i)


结尾的 (?-i) 是必需的还是可以省略? - core
2
顺便提一下,这种语法在其他语言的正则表达式库中也适用,比如Java和Scala。 - Xavi
@DanielK 根据您的编辑,它表明 (?-i) starts 区分大小写匹配。根据示例,(?-i) ends 区分大小写匹配。我有什么遗漏吗?示例是错误的吗? - danjuggler
1
在这个例子中,(?-i) 终止大小写不敏感匹配。换句话说, (?-i) 开始大小写敏感匹配。在最初由stevemegson编辑时,他说它开始了大小写敏感匹配,这也是正确的。@danjuggler - Daniel
这个按照广告宣传的工作。 - Allen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接