【问题标题】:Regex to exclude a substring that exists before a certain substring正则表达式排除在某个子字符串之前存在的子字符串
【发布时间】:2011-05-27 05:22:35
【问题描述】:

知道如何编写一个匹配子字符串“urgent”的正则表达式,只要它在“urgent”之前不包含“not”吗?

例如

this is urgent - 匹配!
[not urgent] blah - 不匹配

对于 Ruby 1.9.2,这是可行的 /(?<!not )urgent/ - 使用消极的眼神

【问题讨论】:

    标签: ruby regex


    【解决方案1】:

    您可以使用以下正则表达式:

    /(?=.*urgent)(?!.*not urgent)(^.*$)/
    

    示例匹配:http://regexr.com?2trsp

    【讨论】:

    • @alex /(?!=not )urgent/ - 好的,前瞻和后向查看实际的主表达式(在本例中为 urgent)并确保前瞻中的模式存在/不存在于主表达式中.所以/(?!=not )urgent/ 所做的只是匹配urgent,前提是urgent 不是=not 。你不是说not不应该出现在urgent之前
    • 在我的正则表达式中,主表达式是^.*$,前瞻确保只有urgent 存在而不是not urgent
    • 感谢您的回答和解释! :) 我也找到了另一种解决方案,但它仅适用于 1.9.2。你的工作甚至在 1.8.7 中。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多