參考鏈接:https://www.cnblogs.com/kevin-yuan/archive/2012/11/11/2765340.html
我希望的匹配結果是這樣的
>>> d 'a1a2a3a4a5a6' >>> re.findall(r'(?:\w\d){5}',d) ['a1a2a3a4a5']
但是一開始是這樣的
>>> d 'a1a2a3a4a5a6' >>> re.findall(r'(\w\d){5}',d) ['a5']
發現使用分組時錯誤的,經過從網絡查找,發現是因為捕獲組和非捕獲組的原因。(...)是捕獲組,將括號內的規則視為一個整體,有一個回溯引用,將所有匹配的分組保存在內存中,引用分組的時候引用匹配出的文本。非捕獲組(?:...)僅僅匹配文本,但是不會捕獲文本保存到內存中。但是關於回溯的引用,暫時還沒有理解明白。網絡中很多地方使用\1來引用捕獲組的子表達式相對位置,但是我使用的是{},也回溯成功了。網絡中給出的實例運行后得到的結果和實例給出的結果不一致。