Notepad ++正则表达式反向引用似乎不起作用

时间:2018-08-23 20:35:29

标签: regex notepad++

我需要在不以:{})结尾的每一行的末尾添加;

我正在Notepad ++中使用它:

  • 搜索:[^:\{\}\)]$
  • 替换为:\1;

它会找到所有正确的字符串,但是会用;代替在行尾之前找到的最后一个字符,而不是将其添加到字符串中。我尝试使用$1而不是\1,但是它没有任何改变-找到的文本仍然被删除。

1 个答案:

答案 0 :(得分:4)

您的模式没有捕获组,因此\1是一个空字符串。使用$0代替引用整个匹配项:

查找内容[^:{})]$
替换为$0;

但是,它在某些情况下可能会失败([^:{})]$模式与:{})以外的任何字符都匹配,因此在行尾之前至少需要1个字符),也许,您最好在此处使用负数:

查找内容$(?<![:{})])
替换为;

$(?<![:{})])模式与行尾(带有$)匹配,然后(?<![:{})])的负向后查找确保没有:{})紧接在当前位置的左侧。