python re模块 详解

news2024/11/17 15:40:11

re 模块是 Python 中用于处理正则表达式的标准库。正则表达式是一种强大的字符串匹配和处理工具,可以用来查找、替换、分割字符串等。下面是 re 模块的详细介绍,包括常用函数和方法。

1、导入模块

import re

2、常用函数

2.1、re.compile(pattern, flags=0)

  • 编译正则表达式模式,返回一个模式对象。
  • pattern:正则表达式的字符串形式。
  • flags:可选,标志位,用于修改正则表达式的行为。

2.1、re.match(pattern, string, flags=0)

  • 尝试从字符串的起始位置匹配一个模式。
  • pattern:正则表达式的字符串形式。
  • string:要匹配的字符串。
  • flags:可选,标志位。

2.3、re.search(pattern, string, flags=0)

  • 搜索字符串中第一次出现的模式。
  • pattern:正则表达式的字符串形式。
  • string:要搜索的字符串。
  • flags:可选,标志位。

2.4、re.findall(pattern, string, flags=0)

  • 查找字符串中所有非重叠的模式,返回一个列表。
  • pattern:正则表达式的字符串形式。
  • string:要查找的字符串。
  • flags:可选,标志位。

2.5、re.finditer(pattern, string, flags=0)

  • 查找字符串中所有非重叠的模式,返回一个迭代器。
  • pattern:正则表达式的字符串形式。
  • string:要查找的字符串。
  • flags:可选,标志位。

2.6、re.sub(pattern, repl, string, count=0, flags=0)

  • 使用 repl 替换字符串中所有匹配 pattern 的子串。
  • pattern:正则表达式的字符串形式。
  • repl:替换的字符串或一个函数。
  • string:要处理的字符串。
  • count:可选,替换的最大次数,默认 0 表示替换所有匹配。
  • flags:可选,标志位。

2.7、re.split(pattern, string, maxsplit=0, flags=0)

  • 根据模式分割字符串,返回一个列表。
  • pattern:正则表达式的字符串形式。
  • string:要分割的字符串。
  • maxsplit:可选,最大分割次数,默认 0 表示分割所有匹配。
  • flags:可选,标志位。

3、常用标志位

  • re.IGNORECASE 或 re.I:忽略大小写。
  • re.MULTILINE 或 re.M:多行模式,影响 ^ 和 $。
  • re.DOTALL 或 re.S:使 . 匹配包括换行在内的所有字符。
  • re.UNICODE 或 re.U:根据 Unicode 字符集解析字符。
  • re.VERBOSE 或 re.X:允许正则表达式中包含空格和注释。

4、示例

import re

# 编译正则表达式
pattern = re.compile(r'\d+')

# 匹配
match = pattern.match('123abc')
if match:
    print(match.group())  # 输出: 123

# 搜索
search = pattern.search('abc123')
if search:
    print(search.group())  # 输出: 123

# 查找所有
findall = pattern.findall('abc123def456')
print(findall)  # 输出: ['123', '456']

# 替换
sub = pattern.sub('NUMBER', 'abc123def456')
print(sub)  # 输出: abcNUMBERdefNUMBER

# 分割
split = pattern.split('abc123def456')
print(split)  # 输出: ['abc', 'def', '']

以上是 re 模块的基本用法和常用函数的介绍。正则表达式是一个非常强大的工具,掌握它可以大大提高字符串处理的效率和灵活性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2242257.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为云租户网络-用的是隧道技术

1.验证租户网络是vxlan 2.验证用OVS 2.1控制节点VXLAN 本端ip(local ip)192.168.31.8 2.2计算节点VXLAN 本端ip(local ip)192.168.31.11 计算节点用的是bond0做隧道网络 2.3查看bond文件是否主备模式

网络编程-002-UDP通信

1.UDP通信的简单介绍 1.1不需要通信握手,无需维持连接,网络带宽需求较小,而实时性要求高 1.2 包大小有限制,不发大于路径MTU的数据包 1.3容易丢包 1.4 可以实现一对多,多对多 2.客户端与服务端=发送端与接收端 代码框架 收数据方一般都是客户端/接收端 3.头文件 #i…

从PE结构到LoadLibrary

从PE结构到LoadLibrary PE是Windows平台主流可执行文件格式,.exe , .dll, .sys, .com文件都是PE格式 32位的PE文件称为PE32,64位的称为PE32,PE文件格式在winnt.h头中有着详细的定义,PE文件头包含了一个程序在运行时需要的所有信息&#xff…

AntFlow:一款高效灵活的开源工作流引擎

AntFlow 是一款功能强大、设计优雅的开源工作流引擎,其灵感来源于钉钉的工作流设计理念,旨在为企业和开发者提供灵活、高效的工作流解决方案。AntFlow 支持复杂的业务流程管理,具有高度可定制性,且拥有现代化的前端设计&#xff0…

智慧安防丨以科技之力,筑起防范人贩的铜墙铁壁

近日,贵州省贵阳市中级人民法院对余华英拐卖儿童案做出了一审宣判,判处其死刑,剥夺政治权利终身,并处没收个人全部财产。这一判决不仅彰显了法律的威严,也再次唤起了社会对拐卖儿童犯罪的深切关注。 余华英自1993年至2…

python机器人Agent编程——多Agent框架的底层逻辑(上)

目录 一、前言二、两个核心概念2.1 Routines(1)清晰的Prompt(2)工具调用json schema自动生成(3)解析模型的toolcall指令(4)单Agent的循环决策与输出 PS.扩展阅读ps1.六自由度机器人相…

【大语言模型】ACL2024论文-14 任务:不可能的语言模型

【大语言模型】ACL2024论文-14 任务:不可能的语言模型 目录 文章目录 【大语言模型】ACL2024论文-14 任务:不可能的语言模型目录摘要研究背景问题与挑战如何解决创新点算法模型实验效果重要数据与结论推荐阅读指数和推荐理由 后记 任务:不可能…

redis linux 安装

下载解压 https://download.redis.io/releases/ tar -zvxf ----redis-7.4.1编译 进入目录下 # redis 依赖c yum install gcc-cmake可能会有问题,所以记得换源# 安装到 /usr/local/redis make PREFIX/usr/local/redis installcd src ./redis-serverredis.confi…

计算机毕业设计Hadoop+大模型空气质量预测 空气质量可视化 空气质量分析 空气质量爬虫 Spark 机器学习 深度学习 Django 大模型

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

云原生之运维监控实践-使用Telegraf、Prometheus与Grafana实现对InfluxDB服务的监测

背景 如果你要为应用程序构建规范或用户故事,那么务必先把应用程序每个组件的监控指标考虑进来,千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当…

HTML+CSS+JavaScript

一、HTML 1、什么是HTML HTML(Hyper Text Markup Language)也叫超文本标记语言,什么意思呢? 超文本:普通文本语言没有什么特殊功能,而超文本,是表示一种比文本语言功能更强大的语言&#xff0c…

Dropout 和 BatchNorm 在训练和验证中的差异

文章目录 1. Dropout1.1 作用1.2 训练和验证的差异1.3 示例 2. Batch Normalization (BatchNorm)2.1 作用2.2 训练和验证时的差异2.3 示例 3. 总结4. 实际使用建议 在神经网络中,Dropout 和 Batch Normalization (BatchNorm) 是常见的层,其行为在 训练阶…

SQL Server 查询设置 - LIKE/DISTINCT/HAVING/排序

目录 背景 一、LIKE - 模糊查询 1. 通配符 % 2. 占位符 _ 3. 指定集合 [] 3.1 表示否定 ^ 3.2 表示范围 - 4. 否定 NOT 二、DISTINCT - 去重查询 三、HAVING - 过滤查询 四、小的查询设置 1. ASC|DESC - 排序 2. TOP - 限制 3. 子查询 4. not in - 取补集&…

【算法速刷(10/100)】LeetCode —— 23. 合并 K 个升序链表

按照最朴素的方法,每轮都对所给列表进行一次遍历,O(n)的复杂度获得值最小的节点,并将其上的链表指针后移一位,一旦为空则剔除数组。数组为空时结束循环。 这样写时间复杂度较高,因为涉及到枚举最小值节点,数…

【C语言】四种方法交换两个数(免费复制)

方法一&#xff1a; 通过中间变量t直接交换。 #include<stdio.h> //方法一 int main() {int a,b,t;printf("请输入a和b的值&#xff1a;\n");scanf("%d %d",&a,&b);printf("交换前&#xff1a;a%d,b%d\n",a,b);ta;ab;bt;printf…

WebSocket简易聊天室实现(有详细解释)

完整代码 Arata08/online-chat-demo 服务端: 1.编写配置类&#xff0c;扫描有 ServerEndpoint 注解的 Bean import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.socket.s…

数据分析——Python绘制实时的动态折线图

最近在做视觉应用开发&#xff0c;有个需求需要实时获取当前识别到的位姿点位是否有突变&#xff0c;从而确认是否是视觉算法的问题&#xff0c;发现Python的Matplotlib进行绘制比较方便。 目录 1.数据绘制2.绘制实时的动态折线图3.保存实时数据到CSV文件中 import matplotlib.…

i春秋-Hash

练习平台地址 竞赛中心 题目描述 题目内容 啥也没有就一个标签跳转 点击后的确发生了跳转 观察到url中有key和hash两个值&#xff0c;猜测hash是key的hash 查看源代码发现确实是 $hashmd5($sign.$key);the length of $sign is 8 解密得到$sign应该为kkkkkk01 构造122的hash i…

举例理解LSM-Tree,LSM-Tree和B+Tree的比较

写操作 write1&#xff1a;WAL 把操作同步到磁盘中WAL做备份&#xff08;追加写、性能极高&#xff09; write2&#xff1a;Memtable 完成WAL后将(k,v)数据写入内存中的Memtable&#xff0c;Memtable的数据结构一般是跳表或者红黑树 内存内采用这种数据结构一方面支持内存…

论文PDF页面无法下载PDF

问题&#xff1a;通常在下载学术论文时&#xff0c;网页命名是PDF页面&#xff0c;但是无法下载PDF&#xff0c;下载的是html网页 解决&#xff1a; mac&#xff1a;按F12打开开发者界面 然后点击源代码/来源选项 然后打开下图所在位置&#xff0c;鼠标右键复制链接&#xff…