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

Find and replace parts of matched string in Notepad++

我在文本文件中有一些看起来像 '%r'%XXXX 的内容,其中 XXXX 代表末尾的某个名称。示例包括 '%r'%addR'%r'%removeA。我可以使用正则表达式 '%r'%\w+ 来匹配这些模式。我想用 '{!r}'.format(XXXX) 替换它。请注意,名称必须在替换中保持不变,所以我会得到 '{!r}.format(addR)'{!r}.format(removeA)。有没有办法以这种方式替换部分匹配的字符串,同时保留在正则表达式搜索中用 \w+ 提取的未知变量名称?

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

搜索:

'%r'%(XXXX)

替换为:

Whatever You like 

将匹配第一组分组括号。

您可以使用

'%r'%(\w+)

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

'%r'%(\w+) 模式包含一对未转义的括号,用于创建捕获组。在替换模式中,我们使用 </code> 反向引用来恢复该值。</p> <p><strong>注意</strong>:替换<em>中的<code>()必须转义,否则会被处理作为 Boost 条件替换模式功能字符。

更多信息见capturing groups and backreferences