【问题标题】:Regex one digit repeated more than n times in line with grep正则表达式一位数重复 n 次以上符合 grep
【发布时间】:2020-06-06 20:36:10
【问题描述】:

我需要找到 regex 表达式以使用 grep 找到重复 4 次或更多次的相同数字。

例如有效的匹配将是

1示例11val3id1匹配1

22ad//13sf2qett2222

3333asdfccwerq3w+134er

我尝试的是

grep -E '[1-9]{4,}' filename

【问题讨论】:

标签: regex linux grep


【解决方案1】:

你可以使用

grep -E '([0-9])(.*\1){3}' filename

regex demo

详情

  • ([0-9]) - 第 1 组:一个数字
  • (.*\1){3} - 任何 0 个或多个字符重复三次,后跟第 1 组中捕获的相同数字。

【讨论】:

  • 请问为什么是 {3} 而不是 {4}?我以为 (.*\1){3} 表示 group1 x 3,是不是类似于 group1 +(group1 x 3) ?
  • @goldenasian 您想获取所有包含 4 个或更多(=至少 4)个相同数字的行,对吗? ([0-9]) 匹配 1,(.*\1){3} 匹配 3。1+3=4。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多