在Notepad ++中查找并替换匹配字符串的部分

时间:2016-04-05 14:33:01

标签: regex notepad++

我在文本文件中有一些看似'%r'%XXXX的内容,其中XXXX代表最后的名称。示例包括'%r'%addR'%r'%removeA。我可以使用正则表达式'%r'%\w+匹配这些模式。我希望将其替换为'{!r}'.format(XXXX)。请注意,名称必须在替换中保持不变,因此我得到'{!r}.format(addR)'{!r}.format(removeA)。有没有办法以这种方式替换匹配字符串的部分,同时保留在正则表达式搜索中用\w+拉出的未知变量名称?

我特意在Notepad ++中使用查找和替换功能寻找解决方案。

2 个答案:

答案 0 :(得分:2)

您可以使用

'%r'%(\w+)

并替换为'{!r}.format\(\1\)

'%r'%(\w+)模式包含一对未转义的括号,用于创建捕获组。在替换模式中,我们使用\1反向引用来恢复该值。

注意:替换中的()必须进行转义,否则它们将被视为Boost条件替换模式功能字符。

详情请见capturing groupsbackreferences

enter image description here

答案 1 :(得分:0)

搜索:

'%r'%(XXXX)

替换为:

Whatever You like \1

\1将匹配第一组分组括号。