如何匹配字符串,如果不是另一个字符串的子字符串?
问题描述:
我正在寻找一种方法来匹配一个字符串,只要它不是另一个字符串的子字符串。如何匹配字符串,如果不是另一个字符串的子字符串?
例子:
I need to find if text contains string "bbbb" that is not part of a string "aaaabbbbcccc".
正则表达式应该匹配字符串:
aaabbbbcccc
aaaabbbbccc
aaabbbbccc
bbbbcccc
aaaabbbb
但不匹配:
aaaabbbbcccc
我试着lookarounds做到这一点:
(?<!aaaa)bbbb(?!cccc)
但它不起作用。它仅匹配
aaabbbbccc
答
的问题是,无论是断言必须是真实的,如果你使用它是你的方式。如果两个断言均失败,则使用替代方法使其失败,但如果两个断言都失败,则不会失败。
(?<!aaaa)bbbb|bbbb(?!cccc)
我假设你的第三个例子还应该有四个 “B”。
答
,如果你这样做:
.{0,4}b{4}.{0,4}
,然后这样的:
a{4}b{4}c{4}
答
perl -ne 'print if /bbbb/ && $_!~/aaaabbbbcccc/ ' your_input
你在用什么语言? – 2012-08-13 09:47:05
为什么要匹配'aaabbbccc'?只有3'b'在里面。 – kev 2012-08-13 10:05:15
使用PHP。是的,有一个错字,它应该是aaabbbbccc。 – 2012-08-13 10:16:05