【问题标题】:Union with Negation, Java RegExp与否定联合,Java 正则表达式
【发布时间】:2013-10-31 22:19:33
【问题描述】:

我想在两个正则表达式之间使用联合: "abc"^(?!.*Blah).*$

但是当我尝试时:

abc^(?!.*Blah).*$ or [abc]^(?!.*Blah).*$

不行,有没有人有解决办法?

在简单的英语中,我想要的理想正则表达式是"abc",后跟除"Blah"之外的任何内容。

【问题讨论】:

  • 从第一个正则表达式中删除^

标签: java regex regex-negation


【解决方案1】:

你可以试试这个:-

abc(?!.*Blah).*$ 

即,删除^

而不是

 abc^(?!.*Blah).*$

【讨论】:

    【解决方案2】:

    如果您查看Java Regex Boundary Matchers,您会发现此上下文中的^ 字符正在尝试匹配行首,这不是您想要的。

    按照建议,您可能需要使用abc(?!.*Blah).*$,或者如果您仍需要行边界匹配,则使用^abc(?!.*Blah).*$

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 2020-01-02
      • 2020-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多