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

如何查找包含三组双字母的行?作业正则表达式求助

解决匹配含三组双字母行的正则问题

嘿,我太懂你这种卡了好几个小时、绞尽脑汁的感觉了——明明觉得问题不难,可就是找不到突破口,真的闹心😅

先给你捋清楚:你之前用的egrep '(.)\1{3}' fileName,确实只能匹配同一个字符连续重复4次及以上的情况(比如aaaaaa),但这和你要的「包含任意三组双字母(比如aa、dd、ee这类)」完全不是一回事。

正确的正则表达式

要匹配包含至少三组独立双字母的行,你可以用这个egrep命令:

egrep '(.)\1.*(.)\2.*(.)\3' fileName

表达式拆解

  • (.)\1:匹配任意单个字符的双重复(比如aa、bb、55这类),括号里的.捕获任意字符,\1引用这个捕获到的字符,实现双重复匹配
  • .*:匹配两组双字母之间任意长度的任意字符,保证三组双字母不需要连续出现
  • 重复三次(.)\1.*的结构,就可以匹配到包含至少三组双字母的行

补充说明

  • 如果你的系统里egrep需要兼容更严格的模式,也可以用grep加扩展正则参数,效果完全一样:
    grep -E '(.)\1.*(.)\2.*(.)\3' fileName
    
  • 这个表达式允许三组双字母是相同的字符(比如aaaaaa里能匹配到三组aa),如果你的需求是三组必须是不同的字符,可以随时说,我再给你调整正则~

内容的提问来源于stack exchange,提问作者HanKuSung

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:26:20