无法在Notepad ++正则表达式搜索和替换中引用捕获组

时间:2014-05-16 16:53:45

标签: regex notepad++

使用Notepad ++ v6.5.5

我有以下正则表达式:

((?<=,)[,\ \/\-#\w]{2,}(?=,[0-9]))

我正在尝试捕获以下行中的文字Dow Corning / Molykote 111, Valve Lubricant

111,Dow Corning / Molykote 111,  Valve Lubricant,25.000000,Y,46.010000,1,1 MSRP

它捕获得很好,但我似乎无法引用替换组。

我尝试了以下内容:

"$0"
"$1"
"$2"
"$3"
"\0"
"\1"
"\2"
"\3"
\1 = "\1"

而且我还将括号移到了前瞻和后方的内部:

(?<=,)([,\ \/\-#\w]{2,})(?=,[0-9])

我试图用以下乱码替换文本:

ansfnasflknsf

没有任何东西被替换。真的不知道发生了什么事。我可以使用纯文本查找/替换,但不能使用正则表达式。


Gah,刚刚尝试过v6.4.5但仍然没有用。

如果有人让这个工作,他们可以让我知道他们正在使用什么版本吗?


以下正则表达式可以更好地捕获我需要的内容:

((?<=,)(?<!\ )[,\ \/\-#\w]{2,}(?=,[0-9\.]+))

2 个答案:

答案 0 :(得分:3)

只需$1即可。 $0引用整个原始字符串。 (我的N ++版本是6.6.9。)

答案 1 :(得分:1)

使用合理的最新版本的notepad ++,你可以做到:

find:    ^[^,]*,\K.+?(?=,[0-9.]+,)
replace: "$0"