我在文件中包含以下文字。
abc1
x
abc1
y
abc1
z
abc2
x
abc3
x
abc3
y
这里我想替换下面的副本,但保留下面的字母。
简单地说我希望输出如下所示。
abc1
x
y
z
abc2
x
ab3
x
y
请让我知道如何使用正则表达式在visual studio或任何其他工具中删除这些重复项。我真的无法找到办法。即使是宏也可能会有所帮助。
由于
答案 0 :(得分:2)
正则表达式可能不是解决此问题的最佳解决方案,但有创造力就可以完成:
(^\w{2,})(?<=^\1(\n\w)*\n\1$)
替换为:
<<empty string>>
说明:
(^\w{2,})
(?<= ... )
^\1
(\n\w)*
\n\1$
使用Visual Studio Regex(在编辑器中)似乎有点复杂,这可行:
(?:\r?\n)?(^\w{2,})(?:\r?\n)?(?<=^\1\r?\n(?:\w\r?\n)*\1)
请参阅:
答案 1 :(得分:0)
您可以将文本读入一个集合(在c ++和python中),然后输出结果键。 cpp set reference
python示例
for i in set( x for x in open( '1.txt' ).read( ).replace( '\n' ,' ' ).split( ' ' ) if x ):
print( i )