预编译 re.compile

40.7 预编译 re.compile

同一模式反复使用时,re.compile(模式) 先编译再 .search/.findall,效率更高。

编译时可传入 re.I 忽略大小写等 flags。

编译后重复使用

# ========================================
# 示例:re.compile 预编译
# 说明:循环匹配同一规则时先 compile
# ========================================
import re

phone_re = re.compile(r'1[3-9]\d{9}')  # 简易手机号
lines = ['13812345678', 'abc', '15900001111']
for line in lines:
    m = phone_re.search(line)
    print(line, '->', m.group() if m else '无效')