Discuss / Python / 如何深入理解分组?

如何深入理解分组?

Topic source

m = re.match(r'(\d{2})-(\d{2,5})','606-6666')    报错;

m = re.match(r'(\d{2}))','606')    返回60,正确,这是为什么?是不是当有两个或以上分组时,各个部分就一定要完全匹配?

对不起,上面多写了半个括号,是m = re.match(r'(\d{2})','606')    这是为什么?是不是当有两个或以上分组时,各个部分就一定要完全匹配?

不论有几个分组,正则表达式也要完全匹配。你所说的‘不完全匹配’指的是正则表达式本身可变化,例如[a-z]{1-3}可以是1个2个或3个字符小写英文字符。对于正则表达式与待匹配字符串,必须要求字符串满足完整的正则表达式的描述。

ywjco_567

#4 Created at ... [Delete] [Delete and Lock User]
>>> m = re.match(r'(\d{3})','606')
>>> print(m)
<re.Match object; span=(0, 3), match='606'>
>>> m = re.match(r'(\d{3})-(\d{4})','606-6666')
>>> print(m)
<re.Match object; span=(0, 8), match='606-6666'>
>>> print(m.groups())
('606', '6666')
>>> 

  • 1

Reply