基础匹配
import re
# 查找第一个匹配
result = re.search(r'\d+', '我有 123 个苹果')
print(result.group()) # 123
# 查找所有匹配
result = re.findall(r'\d+', '年龄: 18, 身高: 175')
print(result) # ['18', '175']
# 按模式分割
parts = re.split(r'[,;]', 'a,b;c,d')
print(parts) # ['a', 'b', 'c', 'd']分组捕获
# 提取邮箱用户名和域名
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.com替换
text = "电话号码: 138-0000-1111"
clean = re.sub(r'-', '', text)
print(clean) # 电话号码: 13800001111
# 替换并返回次数
clean, count = re.subn(r'\s', '_', 'hello world', count=1)预编译(性能优化)
pattern = re.compile(r'\d+')
result = pattern.findall('test123test456')常用正则示例
- 邮箱:
r'^[\w\.-]+@[\w\.-]+\.\w+$' - 手机号:
r'^1[3-9]\d{9}$' - URL:
r'https?://[^\s]+'
正则表达式是文本处理的瑞士军刀。
