在python正则表达式中,有时当你使用re.findall 和re.search匹配同一个正则表达式,尽管只有一个可匹配对象,但结果会有所不同,如下图所示:

执行上式d和d1所得到的结果是否一致?

答案如下.

原因在官方文档(3.10.0中文文档)中进行了解释,但这部分好像还没翻译成中文,其大意是指使用findall在存在多个()时将()识别为group组合,即()外的语句匹配不消费,多个group()时同理返回包含多个匹配目标的元组,所以findall只返回了()内消费的字符串china,而search返回了整个匹配到的字符串<class=jh>china<gfhgfh>