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你好
相关推荐
泡茶喝茶写代码4 分钟前
A股量化数据工程:从 REST 接口到策略信号(第 17 篇):创新高与新低扫描
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
VIP_CQCRE17 分钟前
用 Ace Data Cloud 接入 OpenAI 兼容语音转文字:一份能直接运行的 API 指南
python·openai·api·语音识别·acedatacloud
砚底藏山河2 小时前
python量化入门:多周期数据对齐统一时间轴
java·数据库·python·金融·maven
毕业设计7032 小时前
(免费领源码)django空气净化器销售系统09218- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
python·scrapy·mysql·pycharm·django·flask·pandas
小小张说故事3 小时前
Python 闭包到底捕获了啥?一个计数器例子讲透,别再背定义了
python
深蓝AI3 小时前
AI Agent 点了发布却超时:一条回执丢失,为什么能造成两篇文章?
人工智能·python
怪奇云呼军3 小时前
教育试听预约后没到课,闪电智能 Voice Agent 如何做分层回访?
人工智能·python·算法·云计算·音视频
weixin199701080163 小时前
《淘宝TOP API:落地方案、接口边界与业务踩坑 —— 聚石塔内外价差 10 倍的真相》(附 Python 源码)
开发语言·python
梦想的颜色4 小时前
【编程实战】AI 时代 APP 开发全栈硬核指南:技术选型 + AI 架构 + 模型落地全维度决策
python·flutter·react native·react.js·ai·桌面应用·milvus
Madison-No74 小时前
多语言聊天大模型--测试报告
linux·git·python·selenium·jmeter·自动化·postman