Python3 正则匹配
正则表达式是什么
正则表达式就是一套“用来匹配、查找、筛选、替换字符串的万能规则”。
平时我们处理文本:找手机号、找邮箱、提取数字、过滤特殊字符、判断账号密码格式,普通字符串代码写一堆,用正则一行就能搞定。
Python 所有正则功能,都在自带模块 re 里,不需要额外安装,直接导入就能用。
核心作用就4个:
1. 判断字符串是否符合规则(匹配)
2. 从文本中提取想要的内容(查找)
3. 批量替换指定内容(替换)
4. 按照规则分割字符串(分割)
1. re.search():
查找第一个匹配的内容
只要文本里包含符合规则的内容,就返回结果,找不到返回 None。
import re
result = re.search('abc','www.xantool.cn')
if result:
print("匹配内容:", result.group())
print("匹配位置:", result.span())
else:
print("未找到匹配内容")2. re.findall():
查找所有匹配内容
通过正则表达式在字符串里匹配所有项, 返回一个列表
import re
text = "123,456,789"
result = re.findall("\d+",text)
print(result)3. re.sub():
批量替换内容
用来批量删除、替换敏感词、替换空格、替换符号。
text = "hello world python"
text2 = re.sub("python","python3",text)
print(text2) # 输出结果 python34. re.match():
从头匹配
必须字符串开头就符合规则,否则匹配失败。适合判断账号、手机号开头。
import re
text = "13954612351"
result = re.match("139",text)
if result:
print("匹配内容:", result.group())
print("匹配位置:", result.span())
else:
print("未找到匹配内容")基础正则表达式
基础符号
- \d:匹配任意数字 0-9
- \D:匹配非数字
- \w:匹配字母、数字、下划线
- \s:匹配空格、换行、制表符
- .:匹配任意单个字符(除换行)
2. 数量控制(控制出现几次)
- +:出现 1 次或多次
- *:出现 0 次或多次
- ?:出现 0 次或 1 次
- {n}:固定 n 次
- {n,}:至少 n 次
- {n,m}:n 到 m 次
3. 范围匹配
- [0-9]:任意数字
- [a-z]:任意小写字母
- [A-Z]:任意大写字母
- [^0-9]:除了数字全部匹配
更新时间:2026-06-16 15:17:47
阅读量:9