python 22:管道符与分组

可以使用管道来匹配多个模式中的一个,作为正则表达式的一部分。

例如,假设你希望匹 配'Batman'、'Batmobile'、’Batcopter'和'Batbat'中任意一个。因为所有这些字符串都以Bat开始,所以如果能够只指定一次前缀,就很方便。这可以通过括号实现。

因为用了括号,所以就引入了分组。但只有一个分组,就是在括号里面的,所以,如果用group(1),就是匹配括号里面的部分(其中一个),如下例所示:

>>> batRegex = re.compile(r'Bat(man|mobile|copter|bat)')

>>> mo=batRegex.search('Batmobile lost a wheel')

>>> mo.group()

'Batmobile'

>>> mo.group(0)

'Batmobile'

>>> mo.group(1)

'mobile'

>>> mo.group(2)

Traceback (most recent call last):

  File "", line 1, in

    mo.group(2)

IndexError: no such group

根据上的的显示,不能用group(2),这是因为只有一个分组的原因。

你可能感兴趣的:(python 22:管道符与分组)