如何使用 Notepad++ 删除每一行上的所有重复单词?

Gab*_*iel 13 notepad++ duplicate text-editors

我正在处理一个包含关键字行的文件,有些行包含重复的关键字。

例如:

dangerous,dangerous,hazardous,perilous
Run Code Online (Sandbox Code Playgroud)

我想告诉 Notepad++ 我想删除每行的每个重复单词。对于这个例子dangerous,将被删除:

dangerous,hazardous,perilous
Run Code Online (Sandbox Code Playgroud)

我有一堆这样的行,这就是为什么我正在寻找一种自动化的方式来做到这一点。

ami*_*elz 13

您可以使用正则表达式删除一行中连续重复的单词,但是我认为不可能删除不连续的重复单词(例如dangerous, hazardous, dangerous)。

在 Notepad++ 的替换窗口中使用此正则表达式,不要忘记选择“正则表达式”作为下面的搜索模式选项:

此正则表达式将删除所有连续重复的单词 - 无论是连续 2 个重复的单词还是 10 个重复的单词: \b(\w+)(?:,\s+\1\b)+

完全相同的无逗号正则表达式是:(\b(\w+)(?:\s+\1\b)+可能对其他用户有用)。

如果您只需要一个专门用于两个重复单词(双打)的正则表达式,请使用此正则表达式:(\b\w+\b)\W+\1.

将这个表达式在替换为框保留字出现一次(否则,所有重复的单词将被删除) ${1}

这些正则表达式将解决您在问题中作为示例描述的情况。第一个正则表达式适用于所有重复的单词(例如dangerous, dangerous, dangerous, dangerous, hazardous),而第二个版本仅适用于两个重复的单词(例如dangerous, dangerous, hazardous)。

注:正则表达式将仅适用于该问题描述的格式,这意味着格式,如two words, two words, anotherwordtwo-words, two-words, anotherwordthree words expression, three words expression, anotherword将不会改变,因为正则表达式将不适用于他们。