正则表达式分组()
()表示一个分组(子模式), 即()里面的内容作为一个整体出现。
re.findall(pattern, string[, flags]): 返回匹配结果列表, 若pattern含有子模式, 则返回子模式元组构成的列表。
(即若()内嵌(),则返回分组构成元组构成的列表)
如:
re.findall(r’((red)+)’,‘redredred’)
((red)+)可分成((red)+)与(red)两组,分别为元组的两个元素,其中((red)+)red应尽可能多,贪婪匹配
import re
print(re.findall(r'((red)+)','redredred'))
输出:
[('redredred', 'red')]
re.findall(’((red)+?)’, ‘redredred’)
((red)+?)可分成((red)+?)与(red)两组,分别为元组的两个元素,其中((red)+?)red应尽可能少,懒惰匹配
import re
print(re.findall('((red)+?)', 'redredred'))
输出:
[('red', 'red'), ('red', 'red'), ('red', 'red')]