Python re 模块

Python re.compile() 函数用于把正则预编译成对象,复用提升性能。

语法

re.compile(pattern, flags=0)

参数

pattern:正则表达式。可选 flags:匹配标志,如 re.IGNORECASE。

返回值

返回预编译的 Pattern 对象,可反复调用其 search/findall/sub 等方法。

示例

import re

# 预编译
pattern = re.compile(r"\d{3}-\d{4}")
print(pattern.findall("电话 123-4567, 999-8888"))
# ['123-4567', '999-8888']

# 编译对象的方法和模块函数一致
text = "abc123def456"
pat = re.compile(r"\d+")
print(pat.findall(text))     # ['123', '456']
print(pat.search(text).group())  # 123

# 标志:忽略大小写
pat_i = re.compile(r"hello", re.IGNORECASE)
print(pat_i.findall("Hello HELLO hello"))  # ['Hello', 'HELLO', 'hello']

注意事项

多次使用同一正则时 compile 一次复用更高效。flags 如 re.IGNORECASE 控制匹配行为。