首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子串替换正则表达式

问子串替换正则表达式
EN

Stack Overflow用户
提问于 2013-05-06 08:05:13
回答 2查看 350关注 0票数 0

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

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

问题是它去掉了最后一个字符,而不是在末尾添加分号。

另外,我使用的是Notepad++

EN

回答 2

Stack Overflow用户

发布于 2013-05-06 08:10:35

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

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

代码语言:javascript
复制
$1;

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

或者,您也可以使用lookbehind,它会检查条件,但不会将其内容包括在匹配中:

代码语言:javascript
复制
(?<=[^\n])$

这样,您就可以简单地替换为;。在您的情况下,这并没有真正的不同。在具有更复杂表达式的性能关键型脚本中,捕获往往是一项代价高昂的操作,因此查找通常是有利的。

票数 1
EN

Stack Overflow用户

发布于 2013-05-06 08:13:23

试试这个:

代码语言:javascript
复制
find: \r\n
replace: ;\r\n

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

或

代码语言:javascript
复制
find: (.)(\r\n|$)
replace: $1;$2

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16390414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档