当前位置:  开发笔记 > 开发工具 > 正文

使用正则表达式在Notepad ++和Vim中进行批量替换

如何解决《使用正则表达式在Notepad++和Vim中进行批量替换》经验,为你挑选了6个好方法。

所以我有一个大文本文件,如下所示:

这是几百行,我真的不想手动完成.我正在尝试使用的表达式是:

当我通过几个在线正则表达式测试程序运行它时,它正在按预期工作.我基本上想要删除A,B,C等之前的所有内容.问题是当我尝试在Vim和Notepad ++中使用该表达式时,它似乎找不到任何东西.



1> GlennS..:

在Notepad ++中,您不需要使用正则表达式.

按住alt可以同时选择跨多行的文本矩形.选择要删除的块,然后按删除.



2> 小智..:

在Notepad ++中:



3> Whaledawg..:

A,B,C等之前的一切

这似乎很简单,我必须误解你.只是

:%s/<.*>//


在vim中,就是这样.

4> andHapp..:

除非我没有理解这个问题,否则有一个非常简单的解决方案.以下正则表达式:

(.*)(>)(.*)

将匹配帖子中指定的模式.

因此,在记事本++中,您可以找到(.*)(>)(.*)并替换它\3.

正则表达式基本上是贪婪的,如果你指定(.*)它将匹配整行,你想要做的是以某种方式将其分解,以便你可以提取你想要保留的字符串.在这里,我完全一样,它在Notepad ++和Editplus3中工作正常.



5> rmeador..:

原始解决方案存在两个问题.首先,您的示例文本:

有两个"价值"字出现.你的正则表达式没有.此外,您需要在正则表达式的量词中转义左括号,否则Vim会将其解释为文字括号.这个正则表达式有效:

:%s/



6> xsl..:

这将删除option标签,并将字母保留在vim中:

:%s///g

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有