grep - 使用 Notepad++ ,如果 "Find All"字符串在 1 行中匹配多次,则输出显示重复行

标签 grep notepad++ text-editor

我想知道如何防止notepad++在执行“查找全部”时输出重复行。

这是示例文本文件。

aaa aaa
bbb bbb
ccc ccc

我将“aaa”作为搜索字符串,然后单击“查找当前文档中的所有内容”。 然后输出会是这样的。第 1 行出现了 2 次,因为字符串“aaa”在第 1 行中匹配了 2 次。

Search "aaa" (2 hits in 1 file)
  new 2 (2 hits)
    Line 1: aaa aaa
    Line 1: aaa aaa

以后删除重复行很麻烦。有什么好的方法可以防止重复行吗? 提前致谢!

最佳答案

我从未听说过让“查找结果”窗口删除“重复行”的方法。它们源自同一行上的多次点击。

要阻止重复出现,请确保您只找到该字符串在一行中最后一次出现的位置。

为此,您需要使用以下形式的正则表达式:

(\Qaa.a\E)(?!.*\1)

哪里<YOUR_VALUE>aaa\Q\E运算符是使正则表达式引擎将它们之间的所有字符视为文字字符所必需的。 (...)会将搜索字符串捕获到组 1 和 (?!.*\1) 中负向先行将使该行中后跟相同搜索字符串的所有匹配失败(如 .* 匹配除换行符之外的任何 0+ 字符)。

enter image description here

关于grep - 使用 Notepad++ ,如果 "Find All"字符串在 1 行中匹配多次,则输出显示重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40020110/

相关文章:

regex - Grep:省略搜索和结果之间的空格

bitmap - Notepad++ 的图标使用什么位图格式(这样我就可以更改它们)?

javascript - TinyMCE 未定义

windows - Autohotkey 中的多个光标

parsing - 投影文本编辑器?

bash - 如何使用 grep 查找给定的字符串

awk - 如何提取两个单词之间的(第一次匹配)文本

正则表达式使用grep从html文件中查找外部链接

notepad++ - 一次性更改多个文件的 EOL

replace - 如何在 Notepad++ 中删除 ":"字符串之前的所有内容?