使用正则表达式查找除一个字符串外的所有字符串

时间:2013-04-06 15:52:19

标签: regex

我希望匹配除字符串"ABC"之外的所有字符串。 示例:

 "A"     --> Match
 "F"     --> Match
 "AABC"  --> Match
 "ABCC"  --> Match
 "CBA"   --> Match
 "ABC"   --> No match

我尝试使用[^ABC],但忽略了"CBA"(和其他人)。

3 个答案:

答案 0 :(得分:57)

^(?!ABC$).*

匹配除ABC以外的所有字符串。

答案 1 :(得分:2)

根据你的例子判断,我认为你的意思是“所有字符串除了那些包含 ABC的字符串”。

试试这个:

^(?!.*\bABC\b)

答案 2 :(得分:1)

与GNU Grep反转匹配

您可以使用字边界和要拒绝的特定字符串简单地反转匹配。例如:

$ egrep --invert-match '\bABC\b' /tmp/corpus 
"A"     --> Match
"F"     --> Match
"AABC"  --> Match
"ABCC"  --> Match
"CBA"   --> Match

这完全适用于您提供的语料库。对于其他(或更复杂的)用例,您的里程可能会有所不同。