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

如何修改grep正则表达式以忽略空白匹配连续重复数字?

问题描述

现有文件file.txt内容如下:

abc
abc1
abc11 11abc
abc111
abc abc1

已知用命令 grep -E '([0-9])\1{2,}' file.txt 能筛选出包含3个及以上连续相同数字的行,输出结果是:

abc111

请问怎么修改这个正则表达式,让它忽略空白字符,得到下面的输出?

abc111
abc11 11abc
解决方案

直接修改正则,允许相同数字之间插入任意空白字符,命令如下:

grep -E '([0-9])(\s*\1){2,}' file.txt

简单解释

  • ([0-9]):捕获单个数字作为第一个分组
  • (\s*\1):匹配“任意数量的空白字符(包括0个) + 刚才捕获的那个数字”
  • {2,}:要求上面这个“空白+数字”的组合至少出现2次,加上最开始的那个数字,就凑够了3个及以上相同数字——不管中间有没有空白分隔都符合条件

这样就能同时匹配到连续3个1的abc111,以及被空格隔开的四个1的abc11 11abc,正好符合目标输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 08:02:03