python正则表达式中的分组 group

组是通过 "(" 和 ")" 元字符来标识的。 "(" 和 ")" 有很多在数学表达式中相同的意思;它们一起把在它们里面的表达式组成一组。举个例子,你可以用重复限制符,象 *, +, ?, 和 {m,n},来重复组里的内容,比如说(ab)* 将匹配零或更多个重复的 "ab"。

例子:如果不引入括号,增个表达式作为一个组,是group(0)

>>> import re

>>> p=re.compile(d-d-d) >>> m=p.match(2-3-1) >>> m.groups() () >>> m.group() 2-3-1 >>> m.group(1) Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: no such group

如果引入括号,可以将上面的表达式分成3组,如下 >>> p=re.compile((d)-(d)-(d)) >>> m=p.match(1-2-3) >>> m.group() 1-2-3 >>> m.group(1) 1 >>> m.group(0,2,1) (2-3-1, 2, 1) 也可以给各个组取名字,例如,给第一个数组取名叫first

>>> p=re.compile((?P<first>d)-(d)-(d)) >>> m=p.match(1-2-3) >>> m.group(1) 1 >>> m.group(first)

1

更多更全的功能,可以参见维基百科

come from  come from
经验分享 程序员 微信小程序 职场和发展