这显然是一个简化的情况,但需要的是一个正则表达式,该正则表达式不会与 aabb|bbaa
匹配,但对于 aabb
可以正常工作(后面不跟 |...
)。
像 [ab]+(?!\|[ab]+)*
这样的正则表达式非常接近,但它仍然与 aabb| 中的
,而在这种情况下我希望根本没有匹配。aabb
匹配。 bbaa
不允许使用字符串开头 (^
) 和字符串结尾 ($
) anchor 。
最佳答案
没有规定必须用单个正则表达式表达所有内容。它还使代码不可读。我会建议类似的东西
not (matches "aabb\|bbaa") and (matches "aabb")
如果你坚持的话,可以使用
([ab]+)(\|[ab]+)*
如果第二组不为空,则丢弃匹配。
关于java - 如何获取模式 : regex not followed by another regex 的不匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15818450/