()中的内容会作为捕获组的匹配结果。使用与不使用捕获组至少有下列区别:
1.捕获组是一个整体,如(a.)*表示匹配字母a和任意字符的组合若干次,而a.*表示匹配一个字母a和若干个任意字符。同时,如果既想分组又不想参与捕获可以使用非捕获组:(?:a.)*
2.re.findall()方法只会返回所有捕获组的列表
3.match对象的group()方法可以返回捕获组,如group(1)返回第1捕获组的内容,group(2)返回第2捕获组的内容,甚至支持命名捕获组如group('path')
4.捕获组匹配的内容可作为反向引用使用,如\1表示此处应匹配第1捕获组捕获到的内容。