使用 PCRE,如何构造一个仅在找不到字符串时才匹配的表达式。
如果我使用的是 grep (我不是),我会想要 -v 选项。
一个更具体的例子:我希望我的正则表达式匹配 iff 字符串foo
不在字符串中。所以它会匹配bar
would 但不匹配foobar
。
好的,我已经根据您提出的解决方案改进了我的正则表达式(它错误地匹配以 'test' 开头的字符串)。
^((?!foo).)*$
此正则表达式将仅匹配不包含 foo 的字符串。第一个前瞻将拒绝以 'foo' 开头的字符串,第二个将确保在字符串的其他地方找不到 foo。
根据丹尼尔的回答,我想我有一些有用的东西:
^(.(?!test))*$
关键是您需要对字符串中的每个字符进行否定断言
它确实几乎是重复的。我猜你正在寻找的正则表达式是
(?!foo).*
构建一个匹配的表达式,并使用 !match()...(逻辑否定)这可能就是 grep 无论如何...
您也可以通过使用re.split
, 并根据您的正则表达式拆分来执行此操作(在 python 中),从而返回所有与正则表达式不匹配的部分,根据与正则表达式不匹配的部分进行拆分