Python 基础 正则表达式

文章目录

    • [一 作用](#一 作用)
    • [二 使用](#二 使用)
    • [三 规则表](#三 规则表)
      • [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你好
相关推荐
Sirius.z1 天前
第R6周:LSTM实现糖尿病探索与预测
python
名字还没想好☜1 天前
Python f-string 进阶:数字格式化、对齐填充、调试 = 号与嵌套表达式
开发语言·数据库·python·字符串格式化·f-string
·薯条大王1 天前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python
Dxy12393102161 天前
Python 如何使用 MySQL 的事务
python·mysql
今儿敲了吗1 天前
Python ——第三方包
笔记·python
麒麟水手1 天前
国产银河麒麟系统开发实录:跑通Streamlit,我踩过的6个坑
python
麒麟水手1 天前
麒麟系统部署检查清单:上线前30分钟,逐项自查这4类问题
python
用户0332126663671 天前
使用 Python 在 PDF 中添加或删除数字签名
python
代码方舟1 天前
零信任架构实战:基于天远柠檬查出险-登记证API构建自动化车辆履约评估网关
人工智能·python·架构·自动化
估值探索者1 天前
【Python实时盯盘与预警 #08】成交额突然放大2倍?Python窗口比较抓异动
java·开发语言·python