是否有可能在notepad++中删除重复的行,只留下一行的单一出现?


当前回答

到目前为止,使用记事本内置功能可以删除所有连续重复的行。首先对行进行排序:

编辑>行操作>“按字典顺序排序”,

then

编辑>线路操作>“删除连续重复线路”。

上面建议的正则表达式解决方案并没有为我删除所有重复的行,而是只删除了连续的行。

其他回答

扩展顶部的答案,还可以使用第二个前向查找几乎与其他行重复的行。

^(±s * (< PackageReference包括=”。* * *版=)。*)$±s +?^(?=.*^\ 2 . *美元)

这里我在多次引用同一个<PackageReference Include="。字符串,不管它的版本。

测试数据

<PackageReference Include="Package1" Version="2.2.1" />

    <PackageReference Include="Package1" Version="2.2.1" /> // Match
<PackageReference Include="Package1" Version="2.2.2" />

<PackageReference Include="Package2" Version="5.1" /> // Match
<PackageReference Include="Package2" Version="5.2" />

<PackageReference Include="Package3" Version="2.2.1" /> // No match
<PackageReference Include="Package4" Version="2.2.1" />

查看regex术语含义的详细说明,并尝试使用这个regex101共享中的您自己的数据。

带有TextFX插件的notepad++可以做到这一点,如果你想按行排序,并同时删除重复的行。

要在最新版本的notepad++中安装TextFX,您需要从这里下载:https://sourceforge.net/projects/npp-plugins/files/TextFX

TextFX插件曾经包含在旧版本的notepad++中,或者可以从菜单中添加到插件->插件管理器->显示插件管理器->可用选项卡-> TextFX ->安装。在某些情况下,它也可能被称为TextFX字符,但这是同样的事情。

需要的复选框和按钮现在将出现在菜单下:TextFX -> TextFX工具。

确保选中了“sort outputs only unique…”。接下来,选择一个文本块(Ctrl+ a选择整个文档)。最后,点击“区分大小写排序”或“不区分大小写排序”

如果行是紧挨着的,那么你可以使用正则表达式替换:

搜索模式:^(.*\r?\n)(\1)+

替换为:\1

到目前为止,使用记事本内置功能可以删除所有连续重复的行。首先对行进行排序:

编辑>行操作>“按字典顺序排序”,

then

编辑>线路操作>“删除连续重复线路”。

上面建议的正则表达式解决方案并没有为我删除所有重复的行,而是只删除了连续的行。

搜索正则表达式:\b(\w+)\b([\w\ w]*)\b\1\b

替换为:$1$2

点击“替换”按钮,直到文件中不再匹配正则表达式为止。