Python使用re库处理正则详解

news2025/1/12 6:18:04

今天继续给大家介绍Python相关知识,本文主要内容是Python使用re库处理正则详解。

一、Python re库简介

re库是Python的标准库(所谓标准库,就是在安装Python后就自动安装了的库)之一,主要用于对指定字符串进行正则匹配。使用时需要import引入re即可。
要学习re库的使用就需要学习正则表达式的写法,关于正则表达式请参考:Linux 正则表达式与元字符。在这里就不过多赘述了。

二、Python re库主要函数简介

Python re库主要函数如下所示:
1、re.search()
该函数格式为:

re.search(pattern,string,flags)

作用是搜索字符串中符合正则表达式的第一个值,并返回一个match对象。
2、re.match()
该函数格式为:

re.match(pattern,string,flags)

该函数的作用是从一个字符串的开始未知起匹配正则表达式,该函数与re.search()函数的区别在于如果不能在开始时就匹配到正则表达式,就不会匹配到字符串中间符合条件的正则表达式。
3、re.findall()
该函数格式为:

re.findall(pattern,string,flags)

作用是搜索整个字符串,以列表形式返回所有能够匹配到的字串。
4、re.split()
该函数格式为:

re.split(pattern,string,maxsplit,flags)

作用是将一个字符串按照正则表达式匹配结果进行分隔,返回列表类型。maxsplit参数指定了最大分隔数,满足最大分隔数后最后的部分当作最后一个元素输出,该参数默认为0,表示无限制。
5、re.finditer()
该函数格式为:

re.finditer(pattern,string,flags)

该函数的作用是搜索string字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象。
6、re.sub()
该函数格式为:

re.sub(pattern,reple,string,count,flags)

该函数可以将string中所有符合正则表达式pattern的子字符串替换成字符串repel,然后返回替换后的字符串。count参数表示替换的最大次数,该参数默认为0,表示无限次。

三、Python re库控制标记简介

在上述Python re库常用函数中,pattern为一个正则表达式,string为一个待匹配的字符串,flags为正则表达式的控制标记。flags常用标记及作用如下表所示:

flags常用标记作用
re.l表示在进行正则匹配时,忽略大小写
re.M表示在正则表达式中^字符可以匹配每行的开始
re.S表示在正则表达式中.字符可以匹配所有字符(如果不使用此标记,则该字符会匹配除了换行符以外的所有字符)

四、Python re库使用示例

最后,给大家举几个Python re库的使用示例:
python代码如下所示:

import re

ex=r'[1-9][0-9]*'
str='jkd123ssd321asd'
match1=re.search(ex,str)
if match1:
    print("match1:"+match1.group(0))
match2=re.match(ex,str)
if match2:
    print("match2:"+match2.group(0))
match3=re.split(ex,str)
print("match3:",end='')
print(match3)
match4=re.findall(ex,str)
print("match4:",end="")
print(match4)
sub=re.sub(ex,'_NumSub_',str)
print("sub:"+sub)

上述代码执行结果如下所示:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

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

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

相关文章

功率放大器的输入阻抗和输出阻抗的关系

输入阻抗(inputimpedance)主要是电路输入端的等效阻抗。如果我们在输入端加一个电压源U并在输入端测量电流I,则输入阻抗Rin为U/I。输入端可以被认为是一个电阻的两端,这个电阻的阻值就是输入阻抗。 对于相同的输入电压&#xff0c…

【C++】使用vector和模拟其实现

文章目录1、vector的使用1.1 vector的构造、拷贝构造与迭代器1.2 vector的空间查询和随机访问1.2 vector的增删查改2、vector的模拟实现2.1 vector的迭代器2.2 vector的结构构建2.4 vector的构造和拷贝构造2.4 vector的增删1、vector的使用 C中的vector和C数据结构中的动态顺序…

CANopen1.0-基础知识

caopen基础知识 1、canopen基础知识-can标准帧格式2、CANopen 预定义主/从连接集的广播对象3、CANopen 主/从连接集的对等对象4、通讯接口4.1、NMT 网络管理1、canopen基础知识-can标准帧格式 报文传输采用 CAN 标准帧格式,即为 11bit 的 ID 域:CAN-ID(11bit)=function co…

STM32MP157驱动开发——Linux RS232/485/GPS 驱动

STM32MP157驱动开发——Linux RS232/485/GPS 驱动一、简介二、STM32MP1 UART 驱动分析1.UART 的 platform 驱动框架2.uart_driver相关流程三、驱动开发1.RS232驱动编写1)添加 usart3 和 uart5 的引脚信息2)移植minicom四、驱动测试1.RS232收发测试2.RS48…

GitHub下载量5W+,最新23版Java岗面试攻略,涵盖28个技术栈

年底失业,机会也不多,短时间内想找到合适工作是几乎不可能的。身体好点在家,主要建议大家就做两件事: 第一:整理工作经验,制定新年求职计划。等一些不错的公司放出新的hc,市场情况一回暖&#…

web应用的认证与鉴权

文章目录什么是认证和授权?什么是session?什么是cookie?什么是stick session?如何解决session同步的问题?什么是认证和授权? 认证解决的就是你是谁的问题,当登录一个web电商平台,当…

配置压力测试环境

压力测试环境跟测试环境基本一样,不过部署到新的服务器 首先选一台服务器部署eureka,在把项目发布到eureka上 选择另外一台服务器部署nginx,实现前后端分离 (eureka路径如下:/opt/cbd/cloud/cbd-cloud-eureka/&#x…

TensorRt(4)yolov3加载测试

本文介绍使用darknet项目原始的预训练模型yolov3.weights,经过tensorrt脚本转换为onnx模型,进一步编译优化编译位engine,最后使用TensorRt运行时进行推理。推理时的结果后处理使用c实现,也给出了问题的说明。 文章目录1、darkent模…

C语言奇奇怪怪表达式‘abcd‘,及操作符详解

前言 回顾操作符和一些表达式方面的知识。 表达式及操作符前言算术操作符 &#xff1a; - * /位操作符>>、<<>>算数右移逻辑右移<<小结&、|、~&&#xff1a;有0则为0&#xff0c;两个1才为1|&#xff1a; 有1则为1&#xff0c;两个0才为0~&am…

透彻感知 数字孪生智慧隧道Web3D可视化监控系统

今天为大家分享一个采用 数维图 的 Sovit3D 构建轻量化 3D 可视化场景的案例——智慧隧道三维可视化系统。多维度呈现隧道内外场景&#xff0c;实现隧道内态势的实时监测&#xff0c;运维设备、控制系统和信息系统的互联互通。加强隧道内设备的全状态感知力与控制力&#xff0c…

AI技术赋能数智化转型,激发企业变革创新

人工智能的概念第一次被提出&#xff0c;是在20世纪50年代&#xff0c;距今已七十余年的时间。随着深度神经网络技术的逐渐成熟和计算能力的大幅提升&#xff0c;AI技术实现了飞跃式地发展&#xff0c;已经在工业、制造、能源、金融等各行各业得到了广泛有效地应用实践&#xf…

2022全年度饮料十大热门品牌销量榜单

随着国民经济的发展及居民收入水平不断提升&#xff0c;我国饮料行业规模处于不断增长的状态&#xff0c;饮料种类也日益繁多。同时&#xff0c;瓶装水、碳酸饮料、果汁饮料、茶饮料、功能饮料、含乳饮料等品类竞争激烈。但未来&#xff0c;我国饮料市场还有很大发展空间。 根据…

VS code配置C语言环境

下载编译器MinGW并解压&#xff08;任意路径&#xff09; 官网页面&#xff1a;MinGW-w64 下载页面&#xff1a;MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net MinGW添加至环境变量 D:\VS code\mingw64\bin 注&#xff1a;不能有中文&#xff1b…

SpringBoot整合Swagger3.0

目录 第一步&#xff1a;引入依赖 第二步&#xff1a;yml配置文件添加一下内容 第三步&#xff1a;添加SwaggerConfig配置类 第四步&#xff1a;启动类添加注解 第五步&#xff1a;Controller层类添加注解 第六步&#xff1a;实体类添加注解 第七步&#xff1a;启动项目访…

一篇文章教你如何用界面组件DevExpress WPF为应用配置文件选择!

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF的The…

【K3s】第8篇 详解 Kubernetes 组件

目录 1、Kubernetes 组件 2、控制平面组件&#xff08;Control Plane Components&#xff09; kube-apiserver etcd kube-scheduler kube-controller-manager cloud-controller-manager 3、Node 组件 kubelet kube-proxy 1、Kubernetes 组件 当你部署完 Kubernetes&am…

五、Java 12 新特性概述

五、Java 12 新特性概述 JDK12 在 2019 年 3 月 19 号正式发布&#xff0c;不同于JDK11&#xff0c;JDK12并不是一个LTS版本。作为一个中间版本&#xff0c;JDK12版本特性增加较少。 2017年宣布的加速发布节奏要求每六个月发布一次功能&#xff0c;每季度更新一次&#xff0c;每…

北鲲教程|基于 ABAQUS 的 CFRP 加固钢筋混凝土柱承载能力分析

随着我国经济实力快速发展与国家竞争力迅速提高&#xff0c;尤其是“一带一路”倡议与“海洋开发战略”实施&#xff0c;我国基础设施建设正逐步冲破东部地区的狭长地带&#xff0c;不断扩展至更加广阔的海洋与西部地区。混凝土结构作为土木工程中最常用的结构形式&#xff0c;…

女生戴蓝牙耳机什么颜色好看?适合女生的高颜值蓝牙耳机

蓝牙耳机作为当前畅销的数码单品&#xff0c;越来越多的品牌商推出新的蓝牙耳机&#xff0c;导致选购的时候不知道从何下手&#xff0c;蓝牙耳机最主要的是清晰音效&#xff0c;其次就是佩戴舒适度&#xff0c;但是近年来不少的人在外观上做出很大的改变&#xff0c;吸引人们的…

测试执行中工作效率相关指标

→ 执行效率&#xff1a;利用测试用例文档页数除于此次系统测试执行的时间总和(不包含用例文档编写时间)。补充指标方法是用例的个数除于此次系统测试的时间总和。用于获得工作中测试人员每小时执行测试的速度。 公式&#xff1a;∑测试用例文档页数(页) / ∑执行系统测试的有效…