与正则表达式反转匹配

Joe*_*eda 28 regex pcre

有了PCRE,你怎么可以构造如果是一个字符串,将只匹配一个表达式找到.

如果我使用grep(我不是),我会想要-v选项.

更具体的例子:我希望我的正则表达式匹配当且仅当字符串foo不是对的字符串中.所以它会匹配bar但不会foobar.

Dan*_*uis 52

好的,我根据你提出的解决方案(错误地匹配以'test'开头的字符串)改进了我的正则表达式.

^((?!foo).)*$
Run Code Online (Sandbox Code Playgroud)

此正则表达式将仅匹配不包含foo的字符串.第一个先行将拒绝以'foo'开头的字符串,第二个将确保在字符串的其他位置找不到foo.


Joe*_*eda 5

根据丹尼尔的回答,我认为我有一些有用的东西:

^(.(?!test))*$
Run Code Online (Sandbox Code Playgroud)

关键是你需要对字符串中的每个字符做出否定断言