好吧,在我得到“已经回答”之前,我已经找到并尝试了在以下位置找到的每个排列:
While replacing using regex, How to keep a part of matched string?
Using Notepad++ Regex to Find and Replace Only Part of Found Text
我有以下几行:
new MyObject("22222,11,21),
new MyObject("22223,12,22),
new MyObject("22224,13,23),
new MyObject("22225,14,24),
为此,我尝试在22222、22223、22224和22225周围加上“结束语”:
new MyObject("22222",11,21),
new MyObject("22223",12,22),
new MyObject("22224",13,23),
new MyObject("22225",14,24),
我在记事本++中为“查找内容”输入的值有效(转义的双引号加5位数字)。
\“ \ d {5}
对于“替换为”(基于我在前两篇SOF文章中发现的内容),我已经尝试过:
(仅用于测试)
aaa$1bbb
aaa$1$2bbb
aaa$1$2$3bbb
和
aaa\1bbb
aaa\1\2bbb
aaa\1\2\3bbb
很明显,我想要的(以及我认为应该起作用的)在下面(转义的双引号,然后是占位符“ 1”,第二个转义的双引号)
\"\1\"\
或
\"$1\"\
我的搜索模式是“常规快递”,并且我已打开和关闭了“ .matches newline”。
Notepad ++ v7.7.1(64位)
答案 0 :(得分:2)
这里不需要捕获组,请使用以下命令:
"\d{5}\K
"
说明:
" # a double quote
\d{5} # 5 digits
\K # forget all we have seen until this position
给定示例的结果
new MyObject("22222",11,21),
new MyObject("22223",12,22),
new MyObject("22224",13,23),
new MyObject("22225",14,24),
屏幕截图:
答案 1 :(得分:1)