关注
、点赞
、收藏
、订阅。
在正则表达式中,re.group()方法是用来提取出分组截获的字符串,匹配模式里的括号用于分组。
举例说明:
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- import re
-
- if __name__ == '__main__':
- # 匹配模式
- test_pattern = r"(\d{2}年)(\d{4}年)(\d{4}年)"
- # 待匹配的字符串
- test = "18年2019年2020年"
- # 整体匹配结果
- print(re.search(test_pattern, test).group())
- # 整体匹配结果
- print(re.search(test_pattern, test).group(0))
- # 第一个括号处
- print(re.search(test_pattern, test).group(1))
- # 第二个括号处
- print(re.search(test_pattern, test).group(2))
- # 第三个括号处
- print(re.search(test_pattern, test).group(3))
输出:
- 18年2019年2020年
- 18年2019年2020年
- 18年
- 2019年
- 2020年
-
- Process finished with exit code 0
匹配模式中的三个括号将匹配结果分成了三组。
re.group() 与re.group(0)就是匹配的整体结果;
re.group(1) 列出第一个括号匹配部分;
re.group(2) 列出第二个括号匹配部分;
re.group(3) 列出第三个括号匹配部分。
注意,如果没有匹配成功的,re.search返回的结果是None,使用group()会报错,如下所示:
AttributeError: 'NoneType' object has no attribute 'group'
如果匹配模式中没有括号(分组),使用group(1)、group(2)、group(3)会报错,如下所示:
IndexError: no such group
关注微信公众号【有梦想的程序星空】,了解软件系统和人工智能算法领域的前沿知识,让我们一起学习、一起进步吧!