64

Notepad++ 是否支持非贪婪正则表达式?

例如对于文本:

abcxadc

我想使用模式获取零件:

a.+c

现在我得到整个字符串而不是 2 个部分。我尝试使用“?” 操作员但没有成功。

4

4 回答 4

64

更新: 从 5.9 版(构建时间 2011 年 3 月 31 日)开始,Notepad++ 支持非贪婪正则表达式(新的 scintilla 2.5)。

于 2011-04-22T09:05:02.297 回答
62

我用 Notepad++ V6.1.5 做了以下事情(它现在有 PCRE 正则表达式引擎):

a.+?c

并得到 2 个部分 (abcadc)

现在可以进行惰性(非贪婪)搜索。

于 2012-08-08T12:18:25.973 回答
46

注意:此已接受的答案自 2011 年 3 月 31 日起已过时。Notepad++ v5.9 及更高版本现在支持非贪婪正则表达式。

请在此处此处查看更新的答案。


Notepad++ 不支持惰性?修饰符。相反,您可以指定不需要的内容:

a[^c]+c

其中指定:match a,后跟一个或多个 not 的字符c,然后是c. 这将匹配abcadc

于 2010-10-19T17:44:34.843 回答
0

在清理可有可无部分的日志文件时,我在使用带有“全部替换”和空的“替换为”模式的非贪婪正则表达式时遇到了麻烦。我的解决方案是让模式匹配整行而不改变行的其余部分。

示例:删除行首直到第一个分号:而不是^.+?:-> 现在使用^.+?:(.*)$->\1并按“全部替换”

于 2019-02-21T15:49:28.463 回答