首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用正则表达式进行“反向匹配”?

如何使用正则表达式进行“反向匹配”?
EN

Stack Overflow用户
提问于 2008-10-02 20:27:08
回答 7查看 327.1K关注 0票数 137

我正在逐行处理一个文件,并且我想做一个反向匹配。例如,我希望匹配其中有六个字母的字符串的行,但前提是这六个字母不是'Andrea‘。我该怎么做呢?

我正在使用RegexBuddy,但仍然有问题。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-10-02 20:28:47

代码语言:javascript
复制
(?!Andrea).{6}

假设您的regexp引擎支持负lookaheads...

...or也许您更喜欢使用[A-Za-z]{6}来代替.{6}

请注意,lookahead和lookbehinds通常不是“反转”正则表达式匹配的正确方法。正则表达式实际上并不是为执行负匹配而设置的;它们将负匹配留给您正在使用它们的任何语言。

票数 87
EN

Stack Overflow用户

发布于 2009-12-16 03:57:07

对于Python/Java,

代码语言:javascript
复制
^(.(?!(some text)))*$

http://www.lisnichenko.com/articles/javapython-inverse-regex.html

票数 55
EN

Stack Overflow用户

发布于 2016-08-09 17:07:00

代码语言:javascript
复制
^(?:(?!Andrea).)*$

这称为a tempered greedy token。缺点是它的性能并不好。

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/164414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档