软件测试|深入理解Python中的re.search()和re.findall()区别
前言
在Python中,正则表达式是一种强大的工具,用于在文本中查找、匹配和处理模式。re 模块提供了许多函数来处理正则表达式,其中 re.search()和 re.findall() 是常用的两个函数,用于在字符串中查找匹配的模式。本文将深入介绍这两个函数的用法,以及详细的使用示例。
re.search() 函数
re.search() 函数用于在字符串中查找匹配的第一个子串,并返回一个匹配对象。如果找到了匹配,可以通过匹配对象的方法和属性来获取相关信息。
import repattern = r'apple'
text = "I have an apple and a banana."# 在文本中查找第一个匹配的子串
match = re.search(pattern, text)if match:print("Found:", match.group()) # 获取匹配的子串print("Start:", match.start()) # 获取匹配的起始位置print("End:", match.end()) # 获取匹配的结束位置
else:print("No match found.")
re.findall() 函数
re.findall() 函数用于在字符串中查找所有匹配的子串,并返回一个包含所有匹配结果的列表。
import repattern = r'\d+' # 匹配一个或多个数字
text = "I have 3 apples and 5 bananas. Total 8 fruits."# 查找所有匹配的子串
matches = re.findall(pattern, text)if matches:print("Matches:", matches) # 获取所有匹配的子串列表
else:print("No matches found.")
使用示例
- 使用
re.search()查找日期
import repattern = r'\d{2}-\d{2}-\d{4}' # 匹配日期格式:dd-mm-yyyy
text = "Today's date is 31-08-2023."match = re.search(pattern, text)if match:print("Date found:", match.group())
else:print("No date found.")
- 使用
re.findall()查找所有链接
import repattern = r'https?://\S+' # 匹配HTTP或HTTPS链接
text = "Here are some links: https://www.example.com and http://google.com"links = re.findall(pattern, text)if links:print("Links found:", links)
else:print("No links found.")
- 使用
re.findall()查找电子邮件地址
import repattern = r'\w+@\w+\.\w+' # 匹配基本电子邮件地址
text = "Contact us at support@example.com or info@company.net"emails = re.findall(pattern, text)if emails:print("Email addresses found:", emails)
else:print("No email addresses found.")
总结
re.search() 用于查找第一个匹配的子串,而 re.findall() 则用于查找所有匹配的子串。通过在正则表达式模式中定义适当的规则,使得我们可以有效地在文本中查找并处理各种模式。这两个函数是处理文本匹配和搜索的重要工具,在文本处理和数据提取中非常有用。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:
软件测试|深入理解Python中的re.search()和re.findall()区别
前言 在Python中,正则表达式是一种强大的工具,用于在文本中查找、匹配和处理模式。re 模块提供了许多函数来处理正则表达式,其中 re.search()和 re.findall() 是常用的两个函数,用于在字符串中查找匹配的模式。本文将深入介绍这两…...
❤ Vue3 完整项目太白搭建 Vue3+Pinia+Vant3/ElementPlus+typerscript(一)yarn 版本控制 ltb (太白)
❤ 项目搭建 一、项目信息 Vue3 完整项目搭建 Vue3PiniaVant3/ElementPlustyperscript(一)yarn 版本控制 项目地址: 二、项目搭建 (1)创建项目 yarn create vite <ProjectName> --template vueyarn install …...
linux搭建SRS服务器
linux搭建SRS服务器 文章目录 linux搭建SRS服务器SRS说明实验说明搭建步骤推流步骤查看web端服务器拉流步骤final SRS说明 SRS(simple Rtmp Server),是一个简单高效的实时视频服务器,支持RTMP/WebRTC/HLS/HTTP-FLV/SRT, 是国人自己开发的一款…...
系列六、Spring Security中的认证 授权 角色继承
一、Spring Security中的认证 & 授权 & 角色继承 1.1、概述 关于Spring Security中的授权,请参考【系列一、认证 & 授权】,这里不再赘述。 1.2、资源类 /*** Author : 一叶浮萍归大海* Date: 2024/1/11 20:58* Description: 测试资源*/ Re…...
云原生周刊:OpenTofu 宣布正式发布 | 2023.1.15
开源项目推荐 kubeaudit kubeaudit 是一个开源项目,旨在帮助用户对其 Kubernetes 集群进行常见安全控制的审计。该项目提供了工具和检查规则,可以帮助用户发现潜在的安全漏洞和配置问题。 Chronos Chronos 是一款综合性开发人员工具,可监…...
【如何在 GitHub上面找项目】【转载】
很多的小伙伴,经常会有这样的困惑,我看了很多技术的学习文档、书籍、甚至视频,我想动手实践,于是我打开了GitHub,想找个开源项目,进行学习,获取项目实战经验。这个时候很多小伙伴就会面临这样的…...
java每日一题——ATM系统编写(答案及编程思路)
前言: 基础语句学完,也可以编写一些像样的程序了,现在要做的是多加练习,巩固下知识点,打好基础,daydayup! 题目:模仿银行ATM系统,可以创建用户,存钱,转账&…...
《TrollStore巨魔商店》TrollStore2安装使用教程支持IOS14.0-16.6.1
TrollStore(巨魔商店) 简单的说就相当于一个永久的免费证书,它可以给你的iPhone和iPad安装任何你想要安装的App软件,而且不需要越狱,不用担心证书签名过期的问题,不需要个人签名和企业签名。 支持的版本: TrollStore安装和使用教…...
鸿鹄电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台
随着企业的快速发展,招采管理逐渐成为企业运营中的重要环节。为了满足公司对内部招采管理提升的要求,建立一个公平、公开、公正的采购环境至关重要。在这个背景下,我们开发了一款电子招标采购软件,以最大限度地控制采购成本&#…...
力扣-三数之和
三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。…...
全罐喂养一个月多少钱?适合全罐喂养的猫罐头推荐
不少铲屎官一直没有办法get到猫罐头对猫咪的好处,或者get到了又觉得给猫咪买猫罐头好贵,看到其他铲屎官都开始全罐喂养了,但是自己却迟迟下不了手,犹犹豫豫的不知道全罐喂养一个月多少钱? 今天,铲龄15年的…...
js some方法的使用
JavaScript中的数组some()方法用于检查数组中是否至少有一个元素满足指定条件。该方法会遍历数组,并对每个元素应用指定的测试函数。如果有任何一个元素使得测试函数返回true,则some()方法返回true,否则返回false。 some()方法的语法如下&am…...
QT DAY5作业
1.QT基于TCP服务器端 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QMessageBox> //消息对话框类 #include <QTcpSocket> //客户端类 #include <QList> //链表容器类namespace …...
Hello 2024补题
Wallet Exchange(Problem - A - Codeforces) 题目大意:A,B做游戏,它们的钱包里各有a,b个硬币,轮到它们操作时,它们可以扔掉自己或者对手钱包里的硬币,谁不能操作谁输,问…...
git权限问题导致的所有文件被修改问题
git忽略文件权限的修改 git config core.filemode false...
C语言经典算法之堆排序算法
目录 前言 建议 简介 A.建堆: B.排序 一、代码实现 二、时空复杂度 A.时间复杂度 B.空间复杂度 三、稳定性 四、现实中的应用 前言 建议 1.学习算法最重要的是理解算法的每一步,而不是记住算法。 2.建议读者学习算法的时候,自己…...
前端笔试题(一)
1.vue如何实现数据的双向绑定 利用v-model来实现双向数据绑定 通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图 2.使用vue渲染大量数据时,如何进行优化…...
Springboot开发的大学生寝室考勤系统刷脸进出宿舍系统技术文档
宿舍出入系统 1.2采集学生人脸信息和宿管人脸信息 前端使用navigator.mediaDevices.getUserMedia(考虑个浏览器的内核差异,此处以最新的标准API:navigator.mediaDevices.getUserMedia为例)获取用户浏览器的摄像头并开启视频,使用…...
网络共享服务
存储类型:直连式(DAS):距离最近,存储设备且直接连接到服务器上 存储区域网络(SAN):适用于大型应用或数据库系统,可以使用文件的空间, 以及管理空间…...
资本主义的市场竞争?IBM总监Jerry Chow 谈量子计算的未来
人物介绍:Jerry M.Chow博士在耶鲁大学取得物理博士学位。担任IBM量子系统总监,其研究重点是面向容错量子计算的多量子比特系统。他主要为IBM的量子系统路线图制定战略,与硬件团队领导者一起设定目标研究领域,同时也确保最佳的客…...
cv_unet_image-matting图像抠图:5分钟快速部署,小白也能轻松上手
cv_unet_image-matting图像抠图:5分钟快速部署,小白也能轻松上手 1. 引言:为什么选择这个工具? 你是否遇到过这样的烦恼:需要快速抠出一张人像照片,但Photoshop操作太复杂?或者有一批产品图片…...
Qwen3-14B WebUI定制教程:更换主题、添加历史记录、导出对话功能
Qwen3-14B WebUI定制教程:更换主题、添加历史记录、导出对话功能 1. 准备工作与环境检查 在开始定制Qwen3-14B的WebUI之前,我们需要确保环境已经正确配置并运行。以下是准备工作步骤: 1.1 确认镜像版本与硬件配置 首先检查您的环境是否符…...
用鲸鱼优化算法(WOA)整定PID参数:Matlab与Simulink实战
鲸鱼优化算法(WOA)整定 PID 参数,m 文件加 simulink仿真,仿真程序给出适应度优化曲线,参数优化曲线以及优化对比波形,适用 matlab 2021b 及以上版本在自动控制领域,PID控制器因其结构简单、稳定…...
突破QQ音乐格式壁垒:QMCDecode全方位解密方案与跨场景应用指南
突破QQ音乐格式壁垒:QMCDecode全方位解密方案与跨场景应用指南 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到QQ音乐下载目录ÿ…...
Pixel Couplet Gen完整指南:从GitHub Fork到微信小程序上线的像素春联项目闭环
Pixel Couplet Gen完整指南:从GitHub Fork到微信小程序上线的像素春联项目闭环 1. 项目介绍与核心价值 Pixel Couplet Gen是一款融合AI技术与复古游戏美学的创新应用,它将传统春联创作带入了数字时代。这个项目最吸引人的特点是: 8-bit像素…...
AQ智商测试
AQ逆商测试结果分析(PSYTOPIC版) Psytopic分析:您的AQ得分是 168 ,在人群中属较高水平 。 以下是PSYTOPIC为您提供的分析参考: 你能面对现实,对来自工作和生活中的困难应对自如,并敢于迎接逆境…...
LM358充电器电路设计:从原理到实践
1. LM358芯片基础解析 LM358这颗双运放芯片可以说是电子设计领域的"万金油"了。我第一次接触它是在大学电子竞赛时,老师随手扔给我们几片说:"用这个,不容易烧。"果然,从5V到32V的宽电压范围让它成为新手最友好…...
Linux音频音量太小?别急着改代码,试试amixer这个终端神器
Linux音频音量调整终极指南:告别代码级修改,掌握amixer命令行艺术 当你在深夜调试语音识别项目时,突然发现树莓派录制的样本几乎听不见;或是准备录制技术教程视频时,Ubuntu系统的输出音量小得可怜——这种场景下&#…...
OpenClaw+Qwen3-14b_int4_awq自动化写作:从资料收集到排版发布
OpenClawQwen3-14b_int4_awq自动化写作:从资料收集到排版发布 1. 为什么需要自动化写作工作流 作为一个技术博主,我经常面临这样的困境:明明有大量想分享的内容,却总被繁琐的写作流程拖累。从资料收集、大纲梳理到内容生成和格式…...
2.2.2.1 搭建Spark单机版环境
本次实战旨在Linux环境下完成Spark单机版环境的搭建。首先确保JDK已正确安装,随后获取Spark安装包并上传至服务器指定目录。接着,将安装包解压至系统路径,并通过修改配置文件设置环境变量,使系统能够识别Spark命令。最后ÿ…...

