You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式查找并移除行尾内容重复的连续行(前10字符不同)

匹配前10字符不同但行尾内容一致的连续行

需求说明

要编写正则表达式定位满足以下条件的连续行:

  • 后一行从第11位到行尾的内容,和前一行完全相同
  • 两行的前10个字符不一样

举个例子:

[11:12:21] Hello this is Tom. How are you?
[11:14:08] Hello this is Tom. How are you?

这两行的时间(前10字符)不同,但后续内容完全一致,就是要找的目标行。

已掌握的正则技巧

你已经会这两个正则用法:

  • 移除每行前11个字符:
FIND: ^.{11}(.*)$
REPLACE: $1
  • 移除前10个字符相同的重复行:
FIND: ^((.{10}).*)(?:\r?\n\2.*)+
REPLACE: $1

解决方案正则

要匹配前10字符不同但行尾内容相同的连续两行,用这个正则:

^(.{10})(.*)(?:\r?\n)(?!\1).{10}\2$

正则拆解:

  • ^(.{10}):捕获第一行的前10个字符存入分组1
  • (.*):捕获第一行第11位到结尾的内容存入分组2
  • (?:\r?\n):匹配换行符(兼容Windows的\r\n和Unix的\n格式)
  • (?!\1):负向预查,确保下一行的前10个字符和分组1内容不同
  • .{10}:匹配第二行的前10个字符(仅确认长度,无需捕获)
  • \2:要求第二行第11位到结尾的内容,和分组2的内容完全一致

如果要匹配3行及以上连续满足条件的行(每行前10位都不同,但行尾内容一致),可以用这个扩展版:

^(.{10})(.*)(?:\r?\n)(?!\1).{10}\2(?:\r?\n)(?!\1|.{10})\2$

内容的提问来源于stack exchange,提问作者Sean O - LitSupTipofNite

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:15:15