我使用这个正则表达式来删除类似的行
搜索模式: ^(.{5,})(.*)$\R\1.*
替换模式: $1$2
例如像这样的行
alfax jack
alfax meta
正则表达式给我这个输出行
alfax jack
我需要一个正则表达式来打印其他内容。我试着解释一下,我有
alfax gamma one
alfax gamma second
我需要这个输出
alfax gamma
换句话说,我认为“相同的字符串”是复合词,而不仅仅是相似的行。相同的复合词应该位于行的前 3 个位置内。
有这个的正则表达式吗?
答案1
如果我很好地理解了你的需求,那么这个就可以了:
- Ctrl+H
- 找什么:
^((?:\w+\h+){2,3})(.*)$\R\1.*
- 用。。。来代替:
$1
- 查看 环绕
- 查看 正则表达式
- 取消选中
. matches newline
- Replace all
解释:
^ # beginning of line
( # group 1
(?: # non capture group
\w+ # 1 or more word character
\h+ # 1 or more horizontal space
){2,3} # end group, must appear 2 or 3 times
) # end group 1
(.*) # group 2, 0 or more any character but newline
$ # end of line
\R # any kind of linebreak
\1 # backreference to group 1
.* # 0 or more any character but newline
替代品:
截图(之前):
截图(之后):