我正在逐行处理一个文件,并且我想做一个反向匹配。例如,我希望匹配其中有六个字母的字符串的行,但前提是这六个字母不是'Andrea‘。我该怎么做呢?
我正在使用RegexBuddy,但仍然有问题。
发布于 2008-10-02 20:28:47
(?!Andrea).{6}
假设您的regexp引擎支持负lookaheads...
...or也许您更喜欢使用[A-Za-z]{6}
来代替.{6}
请注意,lookahead和lookbehinds通常不是“反转”正则表达式匹配的正确方法。正则表达式实际上并不是为执行负匹配而设置的;它们将负匹配留给您正在使用它们的任何语言。
发布于 2009-12-16 03:57:07
对于Python/Java,
^(.(?!(some text)))*$
http://www.lisnichenko.com/articles/javapython-inverse-regex.html
发布于 2016-08-09 17:07:00
^(?:(?!Andrea).)*$
这称为a tempered greedy token。缺点是它的性能并不好。
https://stackoverflow.com/questions/164414
复制相似问题