【问题标题】:C# RegEx: Ignore case... in pattern?C# RegEx:忽略大小写...在模式中?
【发布时间】:2010-12-07 16:59:26
【问题描述】:

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

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

【问题讨论】:

    标签: c# regex


    【解决方案1】:

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

    (?i)foo(?-i)bar
    

    匹配 FOObar 但不匹配 fooBAR

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

    【讨论】:

    • 结尾 (?-i) 是必须的还是可以省略?
    • 顺便说一句,这种语法也适用于其他语言(如 Java 和 Scala)的正则表达式库。
    • @DanielK 给出您的编辑,它读取 (?-i) starts 区分大小写的匹配。根据示例, (?-i) ends 区分大小写匹配。我错过了什么吗?例子错了吗?
    • @danjuggler 在示例中,(?-i) 结束区分大小写的匹配。换句话说,(?-i) 开始区分大小写的匹配。在 stevemegson 的原始编辑中,他说它开始区分大小写匹配,这也是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 2020-05-28
    • 2013-05-24
    相关资源
    最近更新 更多