Answers:
如果还没有,请按字母顺序对行进行排序,然后执行以下步骤:(
基于以下相关问题:如何使用正则表达式从文件中查找和删除重复的行?)
在这种情况下,请诉诸于VS Code之外的解决方案(请参阅此处),或者-如果您的文档不是很大,并且您不介意发送“全部替换”按钮,则-请按照前面的步骤进行操作,但是请按照步骤4和5进行操作输入以下内容:(
基于删除不重复的特定重复行)
注意:禁止用于行数过多的文件(1000+);可能导致VS代码崩溃;在某些情况下可能会引入空白行。
搜索:((^[^\S$]*?(?=\S)(?:.*)+$)[\S\s]*?)^\2$(?:\n)?
替换为:$1
然后单击“全部替换”按钮,直到出现重复的事件。
单击该按钮时,行数停止减少就足够了。导航到文档的最后一行以保持关注。
^(.*)(\n\1)+$
?删除重复的行后,我想查看csv中第一列重复的所有行,并想修改正则表达式。
添加到@ Marc.2377的回复中。
如果顺序很重要,并且您不在乎只保留重复的行的最后一行,那么如果您只想删除重复的非空行,则只需搜索以下正则表达式
^(.+\n)(?=(?:.*\n)*?\1)
如果您还想删除重复的空行,请使用*
代替+
^(.*\n)(?=(?:.*\n)*?\1)
并一无所获。
这将占用一行,并尝试在前面找到更多(也许为0)行,然后再截取完全相同的行。它将删除拍摄的线。
这只是一个一次性的正则表达式。无需向垃圾邮件发送替换按钮。
^(.+\n)(?=(?:.*\n)*?\1)
改用它,因为您的正则表达式删除了一个空行,该行是不希望的。无论如何都支持。
xxx(?=…)
是一项前瞻性比赛。因此,可以确保“ xxx”后面的任何内容均与“…”匹配,但不会推进搜索。(?:…)
只是一个不包含在括号中的括号。.*\n
是(可能为空)行的模式。*
表示可能有多行,甚至没有。该?
星号后(*
)方法,我们希望尽可能少的线路越好。由于\1
遵循这一表达的影响是我们展望未来的所有不匹配的行\1
,直到我们找到一个线匹配\1
。我希望这一点很清楚。
我只是遇到了同样的问题,发现Visual Studio代码包“排序行”。有关详细信息,请参见Visual Studio代码市场(例如Sortlines)。
该程序包具有“对行进行排序(唯一)”选项,该选项对我有用。请注意行首/结尾处的所有空白。它们影响线是否被视为唯一。
实际上不在Visual Studio Code中,但如果可以,它将起作用。
正如您指定的Visual Studio Code一样,这不是最佳答案,但正如我所说:如果可行,它就可以了:)
((^[^\S\r\n]*?(?=\S)(?:.*)+$)[\S\s]*?)^\2$(?:\r?\n)?
使我的vscode崩溃了。...我在一个文件中查找229行。:(