子串替换正则表达式

时间:2013-05-06 00:05:13

标签: regex notepad++

在每行的末尾添加分号(;)。

这就是我所拥有的: ([^ \ n])的$

问题是它需要最后一个字符,而不是最后添加分号。

另外,我正在使用Notepad ++

2 个答案:

答案 0 :(得分:1)

我假设你的模式是故意的,因为你只想匹配非空行的行结尾。 (如果要匹配所有行,只需删除([^\n])

Replace with字段中,您需要回写匹配字符:

$1;

显然,您的匹配被替换,因此如果您在行尾之前匹配一个字符,它将被替换。但如果你把它包装在括号中(就像你做的那样),它就是捕获,可以在替换字符串中引用。

或者,您可以使用 lookbehind 来检查条件,但在匹配中包含其内容:

(?<=[^\n])$

这样,您只需使用;替换即可。在你的情况下,它并没有真正有所作为。在具有更复杂表达式的性能关键脚本中,捕获往往是一项昂贵的操作,因此外观通常是有利的。

答案 1 :(得分:0)

试试这个:

find: \r\n
replace: ;\r\n

在Windows文件中,常见的换行符是CRLF(\ r \ n)

find: (.)(\r\n|$)
replace: $1;$2

避免放;在空行中并将其放在最后一行