Invert match with regexp
本问题已经有最佳答案,请猛点这里访问。
对于PCRE,如何构造仅在未找到字符串时匹配的表达式。
如果我使用grep(不是grep),我希望使用-v选项。
一个更具体的例子:我希望我的regexp匹配iff字符串
好的,我已经根据您提出的解决方案(它错误地匹配以"test"开头的字符串)优化了正则表达式。
1 | ^((?!foo).)*$ |
此正则表达式将只匹配不包含foo的字符串。第一个lookahead将拒绝以"foo"开头的字符串,第二个lookahead将确保在字符串的其他位置找不到foo。
根据丹尼尔的回答,我认为我找到了一些有用的东西:
1 | ^(.(?!test))*$ |
关键是您需要对字符串中的每个字符进行否定断言。
我已经为某人回答了这个问题,请参阅以下链接:
- 正则表达式相反
- 在Ruby中查找正则表达式的相反项
它几乎是一个复制品。我想你要找的是雷吉士
?*!
您也可以(在python中)使用
构建匹配的表达式,然后使用!匹配(…)(逻辑否定)这可能就是grep的做法…