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你好
相关推荐
固定资产管理系统软件8 小时前
该去哪里找专业靠谱的智慧智能设备固定资产管理系统?
人工智能·python
ctlover8 小时前
LangChain 概述
python·langchain
专业程序开发源8 小时前
springbootLivehouse票务系统-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·课程设计·pygame
李高钢8 小时前
Python Django 框架入门:从零搭建你的第一个 Web 应用
前端·python·django
2601_966949658 小时前
从轮询到策略消费:量化系统如何高效处理五档盘口数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
萧鼎8 小时前
2026实战:用 accelerate 库加速 PyTorch 训练,核心语法与避坑指南
python·开源·教程·python库·accelerate
我命由我123459 小时前
人脸识别 - 去重时间窗口
java·开发语言·python·学习·java-ee·学习方法·python3.11
王志来137944730089 小时前
安防监控工控工业服务器配套
运维·服务器·python
投票竞赛9 小时前
作品投票版权注意事项,线上评选上传图片视频须知
python·音视频
2601_962293539 小时前
人工智能 & 神经网络完整入门路线(零基础可走,分阶段)
人工智能·python·深度学习·神经网络·机器学习