Regex 用于删除记事本中具有相同id的行的正则表达式++;

Regex 用于删除记事本中具有相同id的行的正则表达式++;,regex,notepad++,Regex,Notepad++,我正在尝试删除Notepad++中具有相同id的行。我有一个.txt文件,该文件具有以下具有相同id的结构 1 33.854088 21.766714 abcdeffgffghjkkgfdfghjjh 1 33.854088 21.766714 ghfhsjiwassjss 2 32.856728 23.758888 asdfgdgff 3 37.85834 23.7711 asdfgghgghhg 3

我正在尝试删除
Notepad++
中具有相同id的行。我有一个
.txt
文件,该文件具有以下具有相同id的结构

1       33.854088   21.766714   abcdeffgffghjkkgfdfghjjh
1       33.854088   21.766714   ghfhsjiwassjss
2       32.856728   23.758888   asdfgdgff
3       37.85834    23.7711     asdfgghgghhg
3       37.85834    23.7711     babanxucndk
我希望在开始时只保留每个id的第一行

1       33.854088   21.766714   abcdeffgffghjkkgfdfghjjh
2       32.856728   23.758888   asdfgdgff
3       37.85834    23.7711     asdfgghgghhg
我曾尝试使用此正则表达式
^(.*?$\s+?^(?=.*^\1$)
,但它只提供完全相同的行,我只需要每个id的第一行。

这应该可以:

匹配:

^((\d+).*)(\r?\n\2.*)+
并替换为:

\1
我们匹配组2中的行ID,并捕获组1中的第一行。然后,我们继续匹配以相同ID开头的后续行(以反向引用开头的行)。然后我们替换为第1组,这是第一行。请注意,这假设您的ID列是升序的


实例:

更好的版本应该是这个。无需将反向引用定义为替换字符串。