参考链接: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来引用捕获组的子表达式相对位置,但是我使用的是{},也回溯成功了。网络中给出的实例运行后得到的结果和实例给出的结果不一致。