文章目录
-
- [一 作用](#一 作用)
- [二 使用](#二 使用)
- [三 规则表](#三 规则表)
-
- [3.1 匹配单个字符](#3.1 匹配单个字符)
- [3.2 匹配多个字符](#3.2 匹配多个字符)
- [3.3 匹配开头和结尾](#3.3 匹配开头和结尾)
一 作用
处理文本
二 使用
导入内置模块
python
import re
函数结构
python
re.match(pattern, string, flags) pattern 正则表达式 string 要检测的字符串 flags 修饰符用来指定是否区分大小写,是否多行,是否匹配换行符等,几乎没用
实际使用
python
import re
res = re.match("小明", "小明明明我是小明") #他只匹配第一个字符,如果明不在最开头结果会是None,且只返回第一个合适的结果,匹配时只看pattern的整体
print(res) #<re.Match object; span=(0, 1), match='小明'>
print(res.group())#小明用group来提取匹配的字符串 如果匹配不到,会报错
三 规则表
3.1 匹配单个字符

实例1 .的使用
匹配除/n外的任意一个字符
python
import re
res = re.match(".", "小明明明我是小明")
print(res.group())#小
res = re.match(".明", "小明明明我是小明")
print(res.group())#小明
实例2 的使用
匹配 内列举的符合条件的第一个字符
python
import re
res = re.match("[大小]", "小明你好")#只能检查"小"在不在[ ]内
print(res.group())#小
res = re.match("[大小][明暗]", "小明你好")#这样就是检查前两个字符
print(res.group())#小明
#匹配数字
res=re.match("[0123456789]","9527")#匹配0到9
res=re.match("[0-9]","9527")#匹配0到9
res=re.match("[0-46-9]","9527")#不匹配5
#匹配字母
res=re.match("[a-zA-Z]","hello")#同时匹配小写a到z和大写A到Z
实例3 \d 匹配0-9
等价于0-9
python
import re
res = re.match('\\d', "1小明012你好") #直接写\d会出警告
print(res.group())#1
实例4 \D 匹配非数字
python
import re
res = re.match('\D', "小明012你好")
print(res.group())#小
3.2 匹配多个字符

示例1 *
python
import re
res = re.match('\\w*', "小明012你好") #*号不能单独作为匹配条件,只能修饰匹配条件,\w代表任意字符(不包含标点和特殊符号)*表示无限,所以会全部匹配
print(res.group())#小明012你好
res = re.match('\\d*', "012你好")
print(res.group())#012
res = re.match('\\d*', "小明012你好")
print(res.group())#打印为空 但不报错
示例2 +
python
import re
res = re.match('\\d+', "小明012你好")
print(res.group())#报错
res = re.match('\\d+', "012你好")
print(res.group())#012
示例3 ?
python
import re
res = re.match('\\d?', "012你好")
print(res.group())#0
res = re.match('\\d?', "你好")
print(res.group())#打印为空 不报错
示例4 {n}
python
import re
res = re.match('\\d{2}', "012你好")#可以用来取代\\d\\d写起来更方便
print(res.group())#01
示例5 {n,m}
最少截取n个,一直截到m个,有效字符少于n会报错
python
import re
res = re.match('\\w{5,9}', "012你好")#最少要有5个字符,最多可以截取9个字符,也就是说有效字符的数量要大于5个,最多可以截取9个
print(res.group())#012你好
3.3 匹配开头和结尾

示例1 ^
python
import re
#用法1 表示从开头匹配
res = re.match('^\\w', "012你好")
print(res.group())#0
#用法2 表示不匹配[]内的内容
res = re.match('[^0]', "012你好")
print(res.group())#报错 第一个字符是什么都可以,唯独不能是0
示例2 $
他的作用是检查字符串是否以特定字符结尾
python
import re
res = re.match('.*好$', "012你好")#除了最后的字符,前边也要想办法读出来,否则会报错,这里用.*指示除了最后一个字符必须是"好",前边是什么都可以
print(res.group())#012你好