使用PCRE,如何构建一个仅在字符串 not 时才匹配的表达式。
如果我使用grep(我不是),我会想要-v选项。
一个更具体的例子:我希望我的正则表达式匹配字符串中的iff字符串foo
而不是。因此,它会匹配bar
,但不会匹配foobar
。
答案 0 :(得分:50)
好的,我根据您提出的解决方案(错误地匹配以'test'开头的字符串)改进了我的正则表达式。
^((?!foo).)*$
此正则表达式仅匹配不包含foo的字符串。第一个前瞻将拒绝以'foo'开头的字符串,第二个将确保在字符串的其他位置找不到foo。
答案 1 :(得分:4)
根据丹尼尔的回答,我认为我有一些有用的东西:
^(.(?!test))*$
关键是你需要对字符串
中的每个字符做出否定断言答案 2 :(得分:2)
我已经为某人回答了这个问题,请看这些链接:
答案 3 :(得分:1)
这确实几乎是重复的。我想你正在寻找的正则表达式是
(?富)。*
答案 4 :(得分:-1)
构建匹配的表达式,并使用!match()...(逻辑否定) 无论如何,这可能就是grep的作用......
答案 5 :(得分:-1)
您也可以使用re.split
执行此操作(在python中),并根据正则表达式进行拆分,从而返回与正则表达式不匹配的所有部分splitting based on what doesn't match a regularexpression