【问题标题】:Regex for strings ending in .cs but not in .g.cs以 .cs 结尾但不在 .g.cs 结尾的字符串的正则表达式
【发布时间】:2008-10-18 18:14:28
【问题描述】:

我需要一个匹配所有以 .cs 结尾的字符串的正则表达式,但如果它们以 .g.cs 结尾,它们不应该匹配。我正在使用 .NET 正则表达式。

【问题讨论】:

    标签: .net regex


    【解决方案1】:

    如果是 .cs 而不是 .g.cs,这将匹配结尾

    (?<!\.g)\.cs$
    

    对于整个字符串从头到尾,如下所示:

    ^.*(?<!\.g)\.cs$
    

    【讨论】:

    • 哎呀,有一个小错字。?而不是 .*,但不贪心应该没关系。
    【解决方案2】:

    在没有负面后视的正则表达式引擎中:

    ^(.*[^g]|.*[^.]g|)\.cs$
    

    从语言上讲,一般的lookahead/lookbehind是非常规的,因此它不是“正则表达式”,即使它真的很方便......

    不相关,因为您声明您正在使用 .NET 的正则表达式引擎,该引擎支持这样的非常规扩展,但我想尽可能地提出这一点。

    【讨论】:

    • 赞成,因为这可能对在 JS 中做类似事情的人有用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    相关资源
    最近更新 更多