分组与命名分组

40.6 分组与命名分组

括号 () 捕获分组:group(0) 整段匹配,group(1) 第一组…

(?P...) 命名分组,用 group('name') 读取。

非捕获 (?:...) 只分组不计数,性能略好。

解析日期

# ========================================
# 示例:分组提取年/月/日
# 说明:() 捕获子串;(?P<n>...) 命名分组
# ========================================
import re

text = '今天是2026-05-30'
m = re.search(r'(?P<y>\d{4})-(?P<m>\d{2})-(?P<d>\d{2})', text)
if m:
    print('整段', m.group(0))
    print('年', m.group('y'), '月', m.group('m'), '日', m.group('d'))
    print('字典', m.groupdict())