1

我需要删除唯一行并将重复项保留在我的文本文件中(阅读为删除重复行而编写的文章,但我想做相反的事情)。有什么办法可以使用表达式或 textfx 来做到这一点?例如:

file1.txt
hello
world
hello

运行后,输出应为

hello
hello

提前致谢

4

2 回答 2

0

这会找到所有行,然后是行重复(但它没有找到最后一行):

.+\r\n(?=(.+\r\n)\1)
000000    111111 22

这匹配非空行 0,但前提是它后面跟着(非空行\1,后面跟着\1)。

请注意,这假定\r\n(Windows) 行分隔符。在 Unix 文本文件上,只需. \n,在 Mac 文本文件上,只需\r.

在搜索框中,标记Regular expression、取消标记. matches newlineReplace with=“”。

例子:

"Zulu
 Alpha
 Alpha
 Bravo
 Charlie
 Charlie
 Delta
 Echo
 Echo
 Foxtrott
"

(file ends with empty line)

-->

"Alpha
 Alpha
 Charlie
 Charlie
 Echo
 Echo
 Foxtrott
"
于 2013-10-23T13:35:51.993 回答
0

在替换对话框中:

寻找:

^(.+)\r?\n(?!(.|\r?\n)*\1)

代替:

*leave empty!*

选项:

  • 选择单选按钮“正则表达式”
  • 保留复选框“。匹配换行符”未选中

优点:

  • 重复行不需要在第一次出现之后立即出现

缺点:

  • 如果一行出现x在您的数据中,则在正则表达式x-1出现之后将被留下,而不是x像 OP 中所要求的那样。
于 2013-10-23T13:37:38.093 回答