正则表达式分组在Python中如何工作?

分组

我们用括号将正则表达式的一部分分组。这就是我们将运算符应用于整个组而不是单个字符的方式。

捕获组

括号不仅对子表达式进行分组,而且还创建了反向引用。与正则表达式的分组部分匹配的字符串部分存储在反向引用中。借助反向引用,我们可以重用正则表达式的某些部分。 

在实际应用中,我们经常需要可以匹配两个或多个替代中的任何一个的正则表达式。另外,有时我们希望将量词应用于多个表达式。所有这些都可以通过用括号分组来实现;并与竖线(|)交替使用。

当我们要匹配几种不同替代方案中的任何一种时,替代方案很有用。例如,正则表达式飞机将匹配包含飞机或飞机或飞机的任何文本。使用正则表达式飞机可以达到相同的目的。 

示例

import re
s = 'Tahiti $% Tahiti *&^ 34 Atoll'
result = re.findall(r'(\w+)', s)
print result

输出结果

这给出了输出

['Tahiti', 'Tahiti', '34', 'Atoll']