联合与否定,Java RegEx

时间:2013-10-22 20:53:40

标签: java regex regex-negation

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

但是当我尝试时:

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

它不起作用,有人有解决方案吗?

用简单的英语,我想要的理想正则表达式为"abc",后面跟"Blah"除外。

2 个答案:

答案 0 :(得分:0)

你可以试试这个: -

abc(?!.*Blah).*$ 

即删除^

而不是

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

答案 1 :(得分:0)

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

根据建议你可能想要使用abc(?!.*Blah).*$,或者如果仍然需要行边界匹配,那么^abc(?!.*Blah).*$