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'


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章