Python 正则表达式 re 模块高级应用
re 模块提供完整的正则支持,可用于文本提取、验证和替换。
1. 基本匹配与搜索
import re
# 查找第一个匹配
result = re.search(r'\d+', '我有 123 个苹果')
print(result.group()) # 123
# 查找所有
result = re.findall(r'\d+', '年龄:18, 身高:175')
print(result) # ['18', '175']2. 分组捕获
email = 'zhangsan@example.com'
pattern = r'([a-zA-Z0-9_]+)@([a-zA-Z0-9.]+)'
match = re.match(pattern, email)
print(match.group(1)) # zhangsan
print(match.group(2)) # example.com3. 替换与分割
# 替换
text = '电话: 138-0000-1111'
clean = re.sub(r'-', '', text)
# 分割
parts = re.split(r'[,;]', 'a,b;c,d') # ['a', 'b', 'c', 'd']4. 预编译(性能优化)
pattern = re.compile(r'\d+')
result = pattern.findall('test123test456')5. 常用正则示例
- 邮箱:
r'^[\w.-]+@[\w.-]+\.[A-Za-z]{2,}$' - 手机号:
r'^1[3-9]\d{9}$' - URL:
r'https?://[^\s]+'
正则表达式是文本处理的瑞士军刀。
