Python正则表达式不匹配

时间:2014-03-14 02:03:47

标签: python regex

我想使用python re来匹配这种输入:12,13,45,23。

输入由四个非负整数组合,用","分隔。

然而,我觉得不合适......

 print re.match(u'^([1−9]\d*|0),([1−9]\d*|0),([1−9]\d*|0),([1−9]\d*|0)$',u"0,1001,13,2")
 #output is None

然而,下一次重新运作良好。

 print re.match(u'^([1−9]\d*|0),([1−9]\d*|0),([1−9]\d*|0)$',u"0,1001,13")
 #<_sre.SRE_Match object at 0x024151B0>

我完全糊涂了。

1 个答案:

答案 0 :(得分:0)

为此,您不需要重复匹配每个整数的正则表达式,您可以使用{x}其中x是应该出现的次数,例如:< / p>

import re

matcher = re.compile(u"([1-9]\d*|0)(,([1-9]\d*|0)){3}$")

print matcher.match(u"12,45")
# None
print matcher.match(u"0,1001,13,578")
# <_sre.SRE_Match object at 0x7fb0e911ca48>