C#RegEx:忽略大小写吗?


72

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

有没有办法在regexPattern字符串中指定模式应忽略大小写的方式?(即,不使用Regex.IsMatch(testString,regexPattern,RegexOptions.IgnoreCase))

Answers:


141

(?i)在模式中,开始不区分大小写的匹配,然后(?-i)结束。那是,

(?i)foo(?-i)bar

匹配FOObar但不匹配fooBAR

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


是结尾(?-i)还是可以省略?
核心

2
顺便说一句,此语法还可以在其他语言(例如Java和Scala)的正则表达式库中使用。
哈维

@DanielK给出您的编辑后,它会读取(?-i)开始区分大小写的匹配。根据示例,(?-i)结束区分大小写的匹配。我想念什么吗?这个例子错了吗?
danjuggler

1
@danjuggler在该例子中,(?-i) 端部区分敏感匹配。换句话说,(?-i) 启动区分大小写的匹配。他在史蒂夫·梅格森(Stevemegson)的原始编辑中说,它开始区分大小写的匹配,这也是正确的。
丹尼尔(Daniel)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.