Python中正则表达式分组是如何工作的?
分组
我们通过用括号把正则表达式的一部分括起来来进行分组。这样,我们就可以把操作符应用于整个组,而不是单个字符。
捕获组
括号不仅可以分组子表达式,还可以创建反向引用。与正则表达式的分组部分匹配的字符串的部分将存储在返回的引用中。通过使用反向引用,我们可以重用正则表达式的部分。
在实际应用程序中,我们通常需要正则表达式可以匹配两个或多个替代中的任何一个。此外,我们有时希望量化器应用于多个表达式。所有这些都可以通过使用括号进行分组,并使用垂直线(|)进行选择来实现。
当我们想要匹配几个不同的替代时,选择是有用的。例如,正则表达式飞机|飞机|喷气式飞机将匹配包含飞机或喷气式飞机或喷气式飞机的任何文本。通过使用正则表达式air(craft|plane)|jet也可以实现相同的目标。
示例
import re
s = 'Tahiti $% Tahiti *&^ 34 Atoll'
result = re.findall(r'(\w+)', s)
print result
输出
这将生成以下输出:
['Tahiti', 'Tahiti', '34', 'Atoll']