c - 没有连续 2 个 a 和 b 的正则表达式

标签 c regex regex-group

我最近一直在尝试一些正则表达式。现在,我有 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),这不是我想要的。任何人都可以建议我出路吗?

最佳答案

如果您不能进行否定匹配,那么也许您可以使用否定前瞻来排除匹配 aabb 的字符串?类似于以下内容(有关更多信息,请参阅 Regex 101):

(?!.*(aa|bb).*)^.*$

关于c - 没有连续 2 个 a 和 b 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46209952/

相关文章:

c - MSP430 内存溢出

c - 测试多个数组元素

regex - 使用正则表达式在字符串中查找sql​​参数

regex - 使用 knitr 和 LaTeX 为已编入索引的术语插入粗体文本

javascript - 使用用户脚本删除 ‘<b/>’

javascript - 用于验证整数或带两位小数的 float 的正则表达式

c - 为什么在评论中使用 `code' 来包含代码?

c - 尝试打开文件时出现读取访问冲突错误

python - 如何在正则表达式中使用 'lookaround' 和字符时捕获整个字符串?

javascript - 使用 JavaScript 验证正则表达式时返回错误