Notepad++正则表达式反向引用似乎无法使用。

6

我需要在每一行的结尾添加;,但排除以:{})结尾的行。

我在Notepad++中使用以下方法:

  • 查找:[^:\{\}\)]$
  • 替换为:\1;

它可以找到字符串,但是用;替换最后一个字符,而不是在其后添加;。我试过使用$1代替\1,但仍然无法解决问题:找到的文本仍然被删除。

1个回答

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

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

然而,在一些特殊情况下可能会失败([^:{})]$模式匹配除:{})之外的任何字符,因此需要至少一个字符在行尾之前),或许你最好在这里使用负回顾后断言:

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

$(?<![:{})])模式匹配行尾(使用$),然后(?<![:{})])负回顾后断言确保当前位置左侧没有:{})


1
谢谢,我现在明白了! :) - user10266758

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接