正则表达式排除特定字符串,但不排除具有子字符串的字符串

标签 regex regex-negation regex-lookarounds

我目前需要一个正则表达式,它可以排除特定字符串,但不能排除包含该字符串的单词。例如,如果您有一个由 0 和 1 组成的字符串。任何包含任意数量的 1 和任意数量的 0(除了 3 个 0 之外)的字符串。

例如:

100100  pass
1000100 fail
00100   pass
000100  fail
0000100 pass
111000  fail
11100001 pass

我尝试了以下正则表达式,但它只接受以 1 开头但必须以 0 结尾的字符串。

^(1*([0]{0,2}|[0]{4,}))$

最佳答案

您可以使用:

^(?!.*?(?<!0)000(?!0))[01]+$

RegEx Demo

关于正则表达式排除特定字符串,但不排除具有子字符串的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28415954/

相关文章:

regex - 如何在 Perl 中安全地验证不受信任的正则表达式?

python - 正则表达式捕获html隐藏输入

sql - Oracle REGEXP_LIKE - 搜索字符串后面没有特定字符

python - 否定匹配的正则表达式模式

java - 如何获取模式 : regex not followed by another regex 的不匹配项

python - 使用正则表达式匹配不以特定字母开头的单词

用于匹配 url 的 Ruby 正则表达式

regex - 非单行 REGEXP

javascript - 如何过滤保留原始组结果的先前正则表达式组的结果

javascript - 如果前面没有反斜杠,如何匹配粗体 Markdown ?