当前位置: 代码迷 >> python >> Python正则表达式不匹配
  详细解决方案

Python正则表达式不匹配

热度:88   发布时间:2023-07-14 09:53:03.0

我想使用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>

我很困惑。

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

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>