在正则表达式里面小括号代表分组,这个分组指的是对于整个表达式来说中间的子集。 正则匹配后得到的match对象把结果也按分组来输出,group(0)是代表整个正则表达式匹配的整个字符串,group(1)是代表正则表达式里面第一个括号的内的匹配内容,group(2)对炒应第2个括号,group(n)依次表示。 你这个只有一个括号,所以就只有group(0)和group(1)
最重要的是要理解“模式”这个词 因为前一个匹配的是整体就是 'ab' 而后一个匹配的整体是多个 'ab' 就是说把'abababab'当成一个整体来匹配。 见下面演示: >>> import re >>> match = re.search('(ab)', 'abababab') >>> match.group(0) 'ab' >>> match.group(1) 'ab' >>> match = re.search('(ab)+', 'abababab') >>> match.group(0) 'abababab' >>> match.group(1) 'ab'
>>> import re >>> match = re.search('(ab)', 'abababab') >>> match.group(0) 'ab' >>> match.group(1) 'ab' >>> match = re.search('(ab)+', 'abababab') >>> match.group(0) 'abababab' >>> match.group(1) 'ab'
(ab)+ 表示ab重复。 结合这个例子,应该明白了吧 re.findall('(ab)+','ababcababc') ['ab', 'ab']
37,720
社区成员
34,239
社区内容
加载中
试试用AI创作助手写篇文章吧