【问题标题】:RegEx how to match "act. 10" but not "act. 10/2"?RegEx如何匹配“act.10”而不是“act.10/2”?
【发布时间】:2021-02-28 11:02:09
【问题描述】:

我只想匹配“act.1”或“act.200”之类的字符串,但不匹配带有子编号的字符串(例如“act.30/1”或“act.400/1”)。

我的模式act\.(.)\d+(?!\/) 匹配“act.1”、“act.200”,但也匹配“act.3”和“act.40”。如何排除数字中带有斜杠的所有字符串?

【问题讨论】:

    标签: regex vba ms-word


    【解决方案1】:

    您可以使用 \s+ 匹配 1 个或多个空白字符,而不是捕获组 1 (.) 中的任何字符。然后在数字之后,添加一个单词边界,后跟负前瞻。

    act\.\s+\d+\b(?!/)
    

    说明

    • act\.\s+ 匹配 act. 后跟 1+ 个空格字符
    • \d+\b 匹配 1+ 数字后跟单词边界
    • (?!/) 负前瞻,断言右边不是/

    Regex demo

    【讨论】:

    • 谢谢,效果很好!我是你 (.) 而不是 \s+ 因为我想要匹配正常和不间断的空格。更新:刚刚发现:[\u00a0| ] 是我的情况的替代方案
    猜你喜欢
    • 2012-09-14
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多