查找包含3个以上数字的行(正则表达式)

时间:2018-07-07 13:42:01

标签: regex notepad++

我的文本文件中有成千上万的行,我想知道是否有一种使用记事本(regex)的方式来查找和选择仅包含三个以上数字的行!

提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果数字是整数,并且可以有其他(非数字)字符分隔这些整数,则可以使用类似以下内容的行进行匹配:

^(?=(\D*\d+(\D+|$)){4,}).*$

说明:

  • ^匹配行的开头
  • (?=表示以下内容必须匹配(正向超前)
    • \D*\d+(\D+|$)匹配任意数量的非数字,后跟您的数字,然后匹配一些非数字分隔符(或行的末尾,如果最后一个数字后面没有任何内容)
    • {4,}至少匹配上述模式4次
  • .*会捕获整行,只要匹配上面的正向前行(即,有3个以上的数字)
  • $与行尾匹配

如果数字可以为小数,则可以用\d+之类的内容替换(\d+\.?\d*),以匹配33.3.456等:< / p>

^(?=(\D*(\d+\.?\d*)(\D+|$)){4,}).*$

例如

  • 1.2 3.456 7 8.90匹配
  • 12/34/56/78/90匹配
  • some 1 text 2 in 3 between 4 the 5 numbers匹配
  • 1 2 3不匹配