正则表达式(Regex)-- 捕获组 (capture group)

正则表达式(Regex)-- 捕获组 (capture group),第1张

Regular Expression HOWTO — Python 3.10.4 documentation

捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用。
分为普通捕获组(Expression) 和 命名捕获组(?Expression) 。

普通捕获组:

如果没有显式为捕获组命名,即没有使用命名捕获组,那么需要按数字顺序来访问所有捕获组。在只有普通捕获组的情况下,捕获组的编号是按照“(”出现的顺序,从左到右,从1开始进行编号的 。

import re

year_pattern = re.compile((\d{4})-(\d{2}-(\d\d)))
test_str = '2022-05-09'
match = version_pattern.search(test_str)
print(match.group(0)) #2022-05-09
print(match.group(1)) #2022      
print(match.group(2)) #05-09     
print(match.group(3)) #09
     

命名捕获组

import re

version_pattern = re.compile(r'.*?Test *?Suite *(?P[0-9\.]+)_(sts-)?[rR]?(?P[0-9\-]+) \(P?\d')
test_str = 'Android Security Test Suite 12_sts-r2 (8385251)\n'
match = version_pattern.search(test_str)
major_version = match.groupdict().get(u'major') #12
minor_version = match.groupdict().get(u'minor') #2

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/883558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-14
下一篇 2022-05-14

发表评论

登录后才能评论

评论列表(0条)

保存