regex - 如果不是另一个字符串的子字符串,如何匹配字符串?

标签 regex

我正在寻找一种方法来匹配一个字符串,如果它不是另一个字符串的子字符串。

例子:

I need to find if text contains string "bbbb" that is not part of a string "aaaabbbbcccc".

正则表达式应该匹配字符串:
aaabbbbcccc
aaaabbbbccc
aaabbbbccc
bbbbcccc
aaaabbbb

但不匹配:
aaaabbbbcccc

我试图用环视来做到这一点:
(?<!aaaa)bbbb(?!cccc)

但它不起作用。它只匹配
aaabbbbccc

最佳答案

问题是这两个断言都必须是真的,如果你按照自己的方式使用它。使用交替使其仅在两个断言都失败时才失败,而不是在只有一个断言失败时。

(?<!aaaa)bbbb|bbbb(?!cccc)

看到它here on Regexr

我假设你的第三个例子也应该有四个“b”。

关于regex - 如果不是另一个字符串的子字符串,如何匹配字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11931743/

相关文章:

regex - 删除所有制表符、空白/换行、空行、多个连续空格(单个空格字符除外)

Python 正则表达式将列表解析为文本以进行响应

regex - vim 对齐小数点

java - 正则表达式替换不在引号内的字符串(单引号或双引号)

javascript - jQuery 正则表达式匹配帮助(可选条件)

regex - 数字和正则表达式

javascript - 使用基于正则表达式的简单Markdown解析器有什么弊端?

php - 如何创建一个无论字符序列如何都匹配的正则表达式?

javascript - 正则表达式 - 忽略引号/HTML(5) 属性过滤之间的文本

javascript - 正则表达式在字面声明时有效,但在使用 new 运算符和变量值声明时无效