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

Ant*_*pov 6 regex notepad++

我需要补充; 在每一个不是结束行的末尾:,{,}).

我在Notepad ++中使用它:

  • 搜索: [^:\{\}\)]$
  • 用...来代替: \1;

它可以找到字符串,但它会替换在行尾之前找到的最后一个字符,;而不是将其添加到字符串中.我试过$1而不是\1 但它没有改变任何东西 - 找到的文本仍然被删除.

Wik*_*żew 4

您的模式没有捕获组,因此\1是一个空字符串。使用$0代替来指代整场比赛:

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

但是,在某些边缘情况下它可能会失败(该模式与、和之外[^:{})]$的任何字符匹配,因此在行结束之前需要至少 1 个字符),也许,您最好在这里使用负向后查找::{})

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

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