首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找/删除重复行的正则表达式

问查找/删除重复行的正则表达式
EN

Stack Overflow用户
提问于 2012-10-18 20:34:09
回答 2查看 1.4K关注 0票数 0

我有这一行,它有时会在html文件中重复,我想要:

1-获取正则表达式,以便只查找具有重复行的文件

2-获取一个正则表达式来搜索并删除它在文件中出现的第二个实例,并保留第一个实例。因此它只保留第一个,而不保留第二个

考虑到这些行并不是彼此相接的,它们被大量的代码和文本分隔开来。

这行代码是:

代码语言:javascript
复制
<script src="/resources/common.js" type="text/javascript"></script>

或者它可以在需要删除的行之前或之后包含单词,例如:

代码语言:javascript
复制
<script src="/resources/common.js" type="text/javascript"></script><div id=something"...

我使用Notepad++进行搜索和替换。

EN

回答 2

Stack Overflow用户

发布于 2012-10-18 21:04:38

如果您使用的是EditPad Pro (或EditPad Lite,它是免费的),这将很容易:

搜索

代码语言:javascript
复制
(?s)(?<=<script src="/resources/common\.js" type="text/javascript"></script>.*)<script src="/resources/common\.js" type="text/javascript"></script>

然后全部替换为空。

一张截图来澄清:

​

​

对于其他编辑器,您必须重复应用以下正则表达式(每次复制一次):

代码语言:javascript
复制
(?s)(?<=<script src="/resources/common\.js" type="text/javascript"></script>)(.*?)<script src="/resources/common\.js" type="text/javascript"></script>

但这一次用\1替换匹配。

票数 2
EN

Stack Overflow用户

发布于 2012-10-18 20:55:25

你可以考虑使用正向回溯,它用于查找和非匹配,你可以使用它来查找你的行的第一个匹配项,然后匹配其余的匹配项。

试试这个吧。它将匹配除第一行之外出现的所有行。

(?<=<script src=./resources/common.js..+?</script>.*?)(<script src=./resources/common.js..+?</script>)

注释:正向外观可能会工作,也可能不会工作,这取决于您使用的正则表达式引擎,但它应该在大多数情况下都能工作。*

更多信息:Regular Expression Lookaround

​

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

https://stackoverflow.com/questions/12954792

复制
相关文章

相似问题

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