当前位置: 首页 > news >正文

Python中正则的三个基础方法

在 Python 中,正则表达式主要通过 re 模块实现,其中三个最基础且常用的方法是 match()search() 和 findall()。它们用于处理字符串与正则表达式的匹配逻辑,适用场景各有不同。

1. re.match(pattern, string, flags=0)

  • 功能:从字符串的开头位置开始匹配正则表达式。如果字符串开头不符合模式,则返回 None;否则返回一个匹配对象(Match 对象)。
  • 特点:只检查字符串开头,不匹配中间内容。
import reresult = re.match(r'hello', 'hello world')
print(result)  # <re.Match object; span=(0, 5), match='hello'>
print(result.group())  # 'hello' (获取匹配的内容)# 字符串开头不匹配的情况
result2 = re.match(r'world', 'hello world')
print(result2)  # None

2. re.search(pattern, string, flags=0)

  • 功能:在整个字符串中搜索第一个符合正则表达式的内容,不限制于开头。找到则返回匹配对象,否则返回 None
  • 特点:扫描整个字符串,返回第一个匹配结果(不继续查找后续匹配)。
import reresult = re.search(r'world', 'hello world')
print(result)  # <re.Match object; span=(6, 11), match='world'>
print(result.group())  # 'world'# 查找数字
result2 = re.search(r'\d+', 'age: 25, height: 180')
print(result2.group())  # '25' (只返回第一个匹配的数字)

(\d:表示匹配任意一个数字字符(0-9),等价于 [0-9]

+:表示 “匹配前面的元素一次或多次”(至少出现 1 次)

组合含义:匹配一个或多个连续的数字(比如整数、手机号中的数字部分等)

详见:详解正则表达式中的元字符(python)-CSDN博客

3. re.findall(pattern, string, flags=0)

  • 功能:在整个字符串中查找所有符合正则表达式的内容,返回一个包含所有匹配结果的列表(无匹配则返回空列表)。
  • 特点:全局匹配,返回所有结果,适合提取多个符合条件的内容。
import re# 提取所有数字
result = re.findall(r'\d+', 'age: 25, height: 180, weight: 70')
print(result)  # ['25', '180', '70']# 提取所有单词
result2 = re.findall(r'\w+', 'hello, world! python is great')
print(result2)  # ['hello', 'world', 'python', 'is', 'great']

(\w:表示匹配任意一个字母、数字或下划线(a-z、A-Z、0-9、_),等价于 [a-zA-Z0-9_]

+:同样表示 “匹配前面的元素一次或多次”。

组合含义:匹配一个或多个连续的字母、数字或下划线(比如单词、变量名、用户名等)

 详见:详解正则表达式中的元字符(python)-CSDN博客

总结对比

方法匹配范围返回值适用场景
match()仅字符串开头匹配对象(或 None验证字符串是否以特定内容开头
search()整个字符串(首个)匹配对象(或 None查找字符串中是否存在目标内容
findall()整个字符串(全部)包含所有匹配结果的列表提取所有符合条件的内容

文章转载自:

http://PggLqfEu.pLwfx.cn
http://41Lbn9Xc.pLwfx.cn
http://2j8I3bBM.pLwfx.cn
http://SqgPPGIQ.pLwfx.cn
http://fBPLvMLd.pLwfx.cn
http://kmGj5Yuv.pLwfx.cn
http://WY0XNFOG.pLwfx.cn
http://9gOQk4yG.pLwfx.cn
http://pxbcKq3f.pLwfx.cn
http://S00R8D4b.pLwfx.cn
http://YwlC377S.pLwfx.cn
http://inuWeWom.pLwfx.cn
http://H3dL23MV.pLwfx.cn
http://lSLragpB.pLwfx.cn
http://jpc7d65o.pLwfx.cn
http://ZNzS8dvk.pLwfx.cn
http://zKpf1mKp.pLwfx.cn
http://hke1rZfG.pLwfx.cn
http://IHHit4rx.pLwfx.cn
http://IUVKyYpa.pLwfx.cn
http://mG35kuAn.pLwfx.cn
http://TO3iptVt.pLwfx.cn
http://XjyHzn5Y.pLwfx.cn
http://rbqnPNq3.pLwfx.cn
http://v5J4PuUp.pLwfx.cn
http://vUc0CRnK.pLwfx.cn
http://YHVo9BU6.pLwfx.cn
http://9JGfYdHe.pLwfx.cn
http://6viT3fTu.pLwfx.cn
http://e0qA5DE4.pLwfx.cn
http://www.dtcms.com/a/388409.html

相关文章:

  • 最外层的项目没有父pom配置文件,有很多子模块(maven项目)导入idea中,左侧模块显示不全问题解决
  • 前端将一个 DOM 元素滚动到视口顶部
  • 前端-防重复点击/防抖的方案
  • doris数据库问题
  • PyQt5中实现只读QLineEdit控件的完整指南
  • 金融工程vs金融数学:谁更贴近量化交易?
  • LeetCode 167.两数之和 II - 输入有序数组
  • 小杰机器学习高级(one)——激活函数——sigmoid、tanh、Relu、Leaky Relu、Prelu、ELU、softmax
  • OpenAI原生调用 vs LangChain调用方式的关系
  • [Token剪枝]Token Cropr: 针对众多任务的更快ViT, CVPR2025
  • NW725NW743美光固态闪存NW727NW734
  • 【Linux】归档、压缩、用户管理
  • Lattice FPGA 开发流程(以 ECP5 为例)
  • 大模型实战应用指南:从GPT-4.5到LLaMA的行业解决方案
  • 告别人工标注瓶颈!Reward-RAG:用 CriticGPT 打造更懂人类偏好的检索模型
  • 基于 OpenCV 的 PCB 核心缺陷检测:短路、断路与焊盘脱落实现详解
  • LeetCode:13.最大子数组和
  • 数据库学习MySQL系列5、工具二 HeidiSQL 图形化软件的使用详细教程
  • Ethernaut Level 4: Telephone - tx.origin vs msg.sender 身份验证绕过
  • RWA开启数字时代的文化价值新纪元
  • 【Redis】-- 分布式锁
  • 分布式拜占庭容错算法——实现工作量证明(PoW)算法详解
  • 基础介绍(Solidity、Polkadot)
  • 【Axure高保真原型】智慧水利可视化分析案例
  • oracle的sql语句中 a=b(+),代表什么意思
  • 联邦学习论文分享:
  • Linux渗透中group的利用
  • Linux:基础开发工具
  • 数据结构----链表
  • 堆排序算法