正则表达式匹配数字而不管分隔符

时间:2019-02-14 15:00:54

标签: regex

我需要一个正则表达式来匹配以下内容:

文本中任何6到16个数字,即使它们不是连续的。

例如:

  1. abc123sadas456 应该与 123sadas456
  2. 相匹配
  3. 123 $ 3123asbaasd4 应该匹配 123 $ 3123asbaasd4
  4. 1234as2 不匹配(至少6个数字)
  5. 12345678asd 应该与 12345678
  6. 相匹配

谢谢

2 个答案:

答案 0 :(得分:0)

这有帮助吗?蟒蛇。

import re
list =["abc123sadas456","123$3123asbaasd4","1234as2", 12345678]

for line in list:
    nr = len(re.sub(r"[\D]", '', str(line)))
    if (nr >=6 and nr < 17):
        print("MATCH:", line)
    else:
        print("NO MATCH:", line)

答案 1 :(得分:0)

我稍后找到了解决方案。

\d([a-zA-Z.\_\\+\-*\.\%$]*\d){5,15}

注意:该正则表达式将匹配数字,即使它们之间用任何字符分隔也是如此。根据需要在中间列表中添加或删除字符。