我希望匹配除字符串"ABC"
之外的所有字符串。
示例:
"A" --> Match
"F" --> Match
"AABC" --> Match
"ABCC" --> Match
"CBA" --> Match
"ABC" --> No match
我尝试使用[^ABC]
,但忽略了"CBA"
(和其他人)。
答案 0 :(得分:57)
^(?!ABC$).*
匹配除ABC
以外的所有字符串。
答案 1 :(得分:2)
根据你的例子判断,我认为你的意思是“所有字符串除了那些包含字 ABC的字符串”。
试试这个:
^(?!.*\bABC\b)
答案 2 :(得分:1)
您可以使用字边界和要拒绝的特定字符串简单地反转匹配。例如:
$ egrep --invert-match '\bABC\b' /tmp/corpus
"A" --> Match
"F" --> Match
"AABC" --> Match
"ABCC" --> Match
"CBA" --> Match
这完全适用于您提供的语料库。对于其他(或更复杂的)用例,您的里程可能会有所不同。