正则表达式找出字符串中的数字序列?

时间:2016-03-11 16:44:19

标签: regex

我正在尝试编写一个正则表达式来限制字符串中的数字序列。对于示例字符串,如下所示

abc12345def
abc 4567 fgt
45679854 khf

因此,如果有超过5个连续数字,我不应该允许它们。上面的例子应该返回

true
true
false

请帮帮我。

3 个答案:

答案 0 :(得分:0)

只需使用\d{6,}之类的正则表来查找超过5个数字的块,并检查此模式是否可以在字符串中找到 。这是一个使用Python的例子:

>>> strings = ['abc12345def', 'abc 4567 fgt', '45679854 khf']
>>> [re.search(r"\d{6,}", s) is None for s in strings]
[True, True, False]

答案 1 :(得分:0)

正则表达式[0-9] {5,}将捕获具有超过5个后果数的任何内容。

>>> print re.search("[0-9]{5,}", "gon1234")
None
>>> print re.search("[0-9]{5,}", "gon12345")
<_sre.SRE_Match object at 0x024458E0>
>>>

工作示例:

import re
inputText = "gon12345"
if re.search("[0-9]{5,}", inputText):
   print "More than 5 numbers!"
else:
   print "Less than 5 numbers"

答案 2 :(得分:0)

这适用于我的情况。
^((?!\ d {5})。)* $
这是&#34; \ d {5,}&#34;的倒数。

希望它有所帮助。