python 自动化数据提取之正则表达式
发布时间 - 2026-01-10 22:38:24 点击率:次目录
- 前 言
- 正 则 表 达 式 语 法
- 表示单字符
- 表示数量
- 表示边界
- 匹配分组
- 贪婪模式
- r e 模 块 的 使 用
- No.1 re.match函数
- No.2 re.search 方法
- No.3 findall 方法
- No.4 sub 方法
- 案 例 演 示
前 言
我们在做接口自动化的时候,处理接口依赖的相关数据时,通常会使用正则表达式来进行提取相关的数据,今天在这边和大家聊聊如何在python中使用正则表达式。

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),是计算机科学的一个概念。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。按某种规则匹配的表达式被称之为正则表达式,在python使用正则表达式,可以使用官方库re来实现,学习re模块之前,我们先来了解一下正则表达式的基本语法。
正 则 表 达 式 语 法
表示单字符
单字符:即表示一个单独的字符,比如匹配数字用\d ,匹配非数字使用\D,具体规则如下:
表示数量
如果要匹配某个字符多次,就可以在字符后面加上数量进行表示,具体规则如下:
表示边界
匹配分组
贪婪模式
贪婪模式:Python里数量词默认是贪婪的,总是尝试匹配尽可能多的字符;
如下案例:有一个字符串s,我们需要在字符串中匹配3个以上的数字,字符串中数字有8个,贪婪模式会尽可能匹配更多字符,3个以上,8个也是3个以上,那么这里匹配的结果就是8个数字。
非贪婪模式:总是尝试匹配尽可能少的字符,在"*“,”?“,”+“,”",后面加上?,可以关闭贪婪模式
关闭贪婪模式之后,尽可能获取更少的,如下,只获取到最前面的3个数值(至少3个,非贪婪就是最前面的3个)
r e 模 块 的 使 用
在python中使用正则表达式,需要用到re模块来进行操作,这边给大家介绍几个re模块中常用的方法。
No.1 re.match函数
参数说明:接收两个参数,
第一个是匹配的规则,
第二个是匹配的目标字符串,
re.match尝试从字符串的起始位置匹配一个模式,匹配成功 返回的是一个匹配对象(这个对象包含了我们匹配的信息),如果不是起始位置匹配成功的话,match()返回的就是空。
No.2 re.search 方法
参数说明:接收两个参数,
第一个是匹配的规则,
第二个是匹配的目标字符串,
re.search 扫描整个字符串并返回第一个成功的匹配。
re.match与re.search的区别
re.match从字符串的开始位置进行匹配,如果字符串开始不符合正则表达式,则匹配失败,函数返回空;
而re.search匹配整个字符串,直到找到一个匹配成功的则进行返回,如果整个字符串中都没有找到匹配成功的,则返回空。
No.3 findall 方法
参数说明:接收两个参数,
第一个是匹配的规则,
第二个是匹配的目标字符串,
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
注意:match 和 search 是匹配一个结果, findall 匹配处所有符合规则的结果。
No.4 sub 方法
替换字符串中的某些字符,可以用正则表达式来匹配被选子串。
re.sub(pattern, repl, string, count=0 )
参数:
pattern:匹配的规则;
repl:匹配之后替换的新内容;
string:需要按规则替换的字符串;
count:替换的次数,可以不传参,默认替换所有符合规则的。
案 例 演 示
需求:整个正则表达式提取如下接口登录之后返回的token值。
接口地址:http://47.112.233.130/users/login/
请求参数:
返回结果:
{'refresh': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTY1Mzk4MzMyNSwiaWF0IjoxNjUzODk2OTI1LCJqdGkiOiI2NTE2MTE0OGFhMDY0NWNjYWY2ZWE4YmYzYzY1YjE1ZSIsInVzZXJfaWQiOjJ9.fMkJfOdhczbr1MqvYE5b0qYlC5GewBlFZbrteMOLUv0', 'token': 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjUzOTgzMzI1LCJpYXQiOjE2NTM4OTY5MjUsImp0aSI6ImQ3Nzg1ZjY0YTk2YzQwYzliZDcwMmUxMDgzNjVkNWU5IiwidXNlcl9pZCI6Mn0.UNmLRQsXnZBltgL7QQVuBON2UEBQav87NSGy5Iqbnws'}
实现代码
import requests
import re
# 登录接口
login_url = 'http://47.112.233.130:8888/users/login/'
# 请求登录接口,进行登录
params = {
"username": "test",
"password": "123456"
}
response = requests.post(url=login_url, json=params)
#使用正则表达式提取token
result = re.search(r'token":"(.+?)"',response.text)
token = result.group(1)
# python 数据提取正则表达式
# python 数据提取正则
# python中如何使用正则表达式提取数据
# 正则表达式
# 第一个
# 第二个
# 最前面
# 的是
# 几个
# 可以用
# 给大家
# 如果没有
# 如果不是
# 可以使用
# 英语
# 不符合
# 没有找到
# 来实现
# 中都
# 先来
# 通常会
# 更少
# 就可以
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
JavaScript模板引擎Template.js使用详解
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
Laravel如何记录自定义日志?(Log频道配置)
php 三元运算符实例详细介绍
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
非常酷的网站设计制作软件,酷培ai教育官方网站?
Windows Hello人脸识别突然无法使用
如何批量查询域名的建站时间记录?
如何在不使用负向后查找的情况下匹配特定条件前的换行符
如何快速搭建二级域名独立网站?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
免费网站制作appp,免费制作app哪个平台好?
,南京靠谱的征婚网站?
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
Python文件流缓冲机制_IO性能解析【教程】
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
如何彻底删除建站之星生成的Banner?
如何破解联通资金短缺导致的基站建设难题?
Python函数文档自动校验_规范解析【教程】
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何快速搭建高效服务器建站系统?
大型企业网站制作流程,做网站需要注册公司吗?
Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
EditPlus 正则表达式 实战(3)
EditPlus中的正则表达式 实战(2)
Laravel如何使用模型观察者?(Observer代码示例)
Laravel如何创建自定义中间件?(Middleware代码示例)
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
魔方云NAT建站如何实现端口转发?
如何在阿里云域名上完成建站全流程?
音乐网站服务器如何优化API响应速度?
如何在建站之星网店版论坛获取技术支持?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
,在苏州找工作,上哪个网站比较好?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
bing浏览器学术搜索入口_bing学术文献检索地址
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
jquery插件bootstrapValidator表单验证详解
如何用搬瓦工VPS快速搭建个人网站?
Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤
中山网站推广排名,中山信息港登录入口?
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】
Python自动化办公教程_ExcelWordPDF批量处理案例
如何在企业微信快速生成手机电脑官网?

