首页 > 代码库 > vi中的正则表达式替换
vi中的正则表达式替换
今天接到了个任务,要将字符串Test("\r\nABC")替换为Test("ABC\n"),其中使用到了分组替换的方法,使用vi执行如下命令进行替换:
%s/"\(\\r\\n\)\([^\\]*\)"/"\2\\n"/g
%s - vi的替换命令 尾部的/g意味全局替换
"\(\\r\\n\)\([^\\]*\)" 部分 其中
\(\)的方式为匹配后为设定分组编号,系统会自动进行编号,后面通过\1 \2这样的方式来引用前面匹配的分组信息
\\r\\n为匹配 \r\n
[^\\]*为匹配非\的多个字符
\2\\n为由于是在%s的操作符和/作用下,所以意味着此部分为替换为第二分组和\n这样的字符串
/g为全文替换。
在学习阶段发现,有个很好用的网站,虽然不是很兼容vi的正则表达式匹配的方式,不过也很有用,尤其是对自行编写的表达式样式会进行分析和说明,甚是有用。
regex101.com
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。