我最近一直在尝试一些正则表达式。现在,我有 3 个符号 a、b 和 c。
我首先查看了一个我不想要连续 2 个 a 的案例。正则表达式类似于:
((b|c + a(b|c))*(a + epsilon)
现在我想知道是否有一种方法可以将这个问题概括为:
没有两个连续的 a 和两个连续的 b 的正则表达式。我试过类似的东西:
(a(b|c) + b(a|c) + c)* (a + b + epsilon)
但这接受诸如“abba”或“baab”之类的输入,它们将有 2 个连续的 a(或 b),这不是我想要的。任何人都可以建议我出路吗?
最佳答案
如果您不能进行否定匹配,那么也许您可以使用否定前瞻来排除匹配 aa
和 bb
的字符串?类似于以下内容(有关更多信息,请参阅 Regex 101):
(?!.*(aa|bb).*)^.*$
关于c - 没有连续 2 个 a 和 b 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46209952/