时间:2010-10-19 17:34:58

标签: regex notepad++ regex-greedy

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

例如文字:

abcxadc

我想使用模式获取零件:

a.+c

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

4 个答案:

答案 0 :(得分:55)

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

答案 1 :(得分:46)

我使用Notepad ++ V6.1.5(它现在有PCRE正则表达式引擎)执行了以下操作:

  

一个。+ 2 C

并获得2部分(abcadc

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

答案 2 :(得分:42)

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

a[^c]+c

其中指定:匹配a,后跟一个或多个非c的字符,后跟c 。这将匹配abcadc

答案 3 :(得分:0)

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

示例:删除直到第一个分号的所有行首:现在使用^.+?:-> 代替^.+?:(.*)$-> \1,然后按“全部替换”