[Python进阶] Python中使用正则表达式

8.4 Python中使用正则表达式

在Python中,我们使用re模块来使用正则表达式。以下是一些基本的使用方法:
首先,你需要导入re模块:

import re

8.4.2 re模块简单示例

8.4.2.1 查找字符串

使用re模块的search()方法可以在一个字符串中查找匹配正则表达式的部分。例如,下面的代码将查找字符串中的"abc":

import re  
  
string = "Hello, abc world!"  
match = re.search("abc", string)  
  
if match:  
    print("Found match: ", match.group())  
else:  
    print("No match found.")

Found match: abc

8.4.2.2 匹配字符串

如果你想检查一个字符串是否完全符合一个正则表达式,你可以使用match()方法。例如,下面的代码将检查字符串是否以"abc"开头:

import re  
  
string = "abc world!"  
match = re.match("abc", string)  
  
if match:  
    print("Match found: ", match.group())  
else:  
print("No match found.")

Match found: abc

注意,match()方法只检查字符串的开始部分是否符合正则表达式,如果你想检查整个字符串是否符合,你应该使用fullmatch()方法。

8.4.2.3 替换字符串

如果你想在字符串中查找并替换匹配正则表达式的部分,你可以使用sub()方法。例如,下面的代码将在字符串中查找所有的"abc"并替换为"xyz":

import re  
  
string = "Hello, abc world! abc"  
new_string = re.sub("abc", "xyz", string)  
print(new_string)

Hello, xyz world! xyz

以上就是Python中使用正则表达式查找和匹配字符串的基本方法。

8.4.3 re模块函数详解

8.4.3.1 re.match:从头查找

re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
函数语法:

re.match(pattern, string, flags=0)
参数说明:
| 参数 | 描述 |
|---------|--------------------|
| pattern | 匹配的正则表达式 |
| string | 要匹配的字符串 |
| flags | 标志位,用于控制正则表达式的匹配方式 |
标志位:
| 修饰符 | 描述 |
|—|—|
| re.I | 使匹配对大小写不敏感 |
| re.L | 做本地化识别(locale-aware)匹配 |
| re.M | 多行匹配,影响 ^ 和 $ |
| re.S | 使 . 匹配包括换行在内的所有字符 |
| re.U | 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. |
| re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 |

匹配成功re.match方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。
匹配结果对象方法

匹配对象方法描述
group(num=0)匹配的整个表达式的字符串,group() 可以一次输入多个组号,在这种情况下它将返回一个包含那些组所对应值的元组。
groups()返回一个包含所有小组字符串的元组,从 1 到 所含的小组号。
span()返回匹配结果所在的位置
8.4.3.2 re.search:查找全部

re.search 扫描整个字符串并返回第一个成功的匹配。
函数语法:

re.search(pattern, string, flags=0)
参数说明:
| 参数 | 描述 |
|—|—|
| pattern | 匹配的正则表达式 |
| string | 要匹配的字符串。 |
| flags | 标志位,用于控制正则表达式的匹配方式 |

匹配成功re.search方法返回一个匹配的对象,否则返回None。
我们可以使用group(num) 或 groups() 匹配对象函数来获取匹配表达式。

8.4.3.3 re.sub:检索并替换

语法:

re.sub(pattern, repl, string, count=0, flags=0)
参数:
| 参数名 | 说明 |
|—|—|
| pattern | 正则中的模式字符串。 |
| repl | 替换的字符串,也可为一个函数。 |
| string | 要被查找替换的原始字符串。 |
| count | 模式匹配后替换的最大次数,默认0表示替换所有的匹配。 |
| flags | 编译时用的匹配模式,数字形式。 |

8.4.3.4 re.findall

在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果有多个匹配模式,则返回元组列表,如果没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有。
语法:

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

pattern.findall(string[, pos[, endpos]])
参数:
| 参数名 | 说明 |
|—|—|
| pattern | 匹配模式。 |
| string | 待匹配的字符串。 |
| pos | 可选参数,指定字符串的起始位置,默认为0。 |
| endpos | 可选参数,指定字符串的结束位置,默认为字符串的长度。 |

8.4.3.5 re.finditer

和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
语法:

re.finditer(pattern, string, flags=0)
**`参数:
| 参数 | 描述 |
|—|—|
| pattern | 匹配的正则表达式 |
| string | 要匹配的字符串。 |
| flags | 标志位,用于控制正则表达式的匹配方式 |

8.4.3.6 re.split

split 方法按照能够匹配的子串将字符串分割后返回列表,它的使用形式如下:

re.split(pattern, string[, maxsplit=0, flags=0])
参数:
| 参数 | 描述 |
|—|—|
| pattern | 匹配的正则表达式 |
| string | 要匹配的字符串。 |
| maxsplit | 分割次数,maxsplit=1 分割一次,默认为 0,不限制次数。 |
| flags | 标志位,用于控制正则表达式的匹配方式 |

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Making Large Language Models Perform Better in Knowledge Graph Completion论文阅读

文章目录 摘要1.问题的提出引出当前研究的不足与问题KGC方法LLM幻觉现象解决方案 2.数据集和模型构建数据集模型方法基线方法任务模型方法基于LLM的KGC的知识前缀适配器知识前缀适配器 与其他结构信息引入方法对比 3.实验结果与分析结果分析:可移植性实验&#xff1…

Kafka-服务端-KafkaController

Broker能够处理来自KafkaController的LeaderAndIsrRequest、StopReplicaRequest、UpdateMetadataRequest等请求。 在Kafka集群的多个Broker中,有一个Broker会被选举为Controller Leader,负责管理整个集群中所有的分区和副本的状态。 例如:当某分区的Le…

第92讲:MySQL主从复制集群故障排查思路汇总

文章目录 1.从库I/O线程处于Connecting状态2.从库I/O线程处于No状态3.从库SQL线程处于No状态 1.从库I/O线程处于Connecting状态 从库的I/O线程处于Connection连接中的状态,一般都是连接不上主库导致: 可能由于网络不通,防火墙的干扰导致从库…

MongoDB系列之一文总结索引

概述 分类 索引的分类: 按照索引包含的字段数量,可分为单键索引(单字段索引)和组合索引(联合索引、复合索引)按照索引字段的类型,可以分为主键索引和非主键索引按照索引节点与物理记录的对应…

2024免费mathtype7.4.4安装注册步骤教程

数学建模中对公式的编辑有很高的要求,mathtype是一款专业的数学公式编辑工具,能够帮助用户在各种文档中插入复杂的数学公式和符号。 一 Mathtype 的下载安装 1.1 安装前须知 解压和安装前,需要将电脑的杀毒软件或者防火墙关掉,如…

python222网站实战(SpringBoot+SpringSecurity+MybatisPlus+thymeleaf+layui)-后台管理主页面实现

锋哥原创的SpringbootLayui python222网站实战: python222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火爆连载更新中... )_哔哩哔哩_bilibilipython222网站实战课程视频教程(SpringBootPython爬虫实战) ( 火…

vue3跨域请求及一些常用配置

在使用vue3开发的时候,总免不了做一些基础的配置。比如跨域配置,一些常用函数的封装等等。接下来,我就做一些自己在在开发中所运用到一些常用配置。 一、跨域配置 其实,对于跨域配置,我之前的博文中也有说过&#xff0…

Linux的常见指令和基本操作演绎【复习篇章一】

文章目录 前言下载安装 XShellXShell 下的复制粘贴热键操作01.ls指令tree 02.cd指令03.touch指令04.mkdir指令(重要):05.rmdir指令 && rm 指令(重要)06.组合07.man指令(重要)&#xff1…

Packet Tracer - VLAN 间路由练习

地址分配表 设备 接口 IP 地址 子网掩码 默认网关 R1 G0/0 172.17.25.2 255.255.255.252 不适用 R1 G0/1.10 172.17.10.1 255.255.255.0 不适用 R1 G0/1.20 172.17.20.1 255.255.255.0 不适用 R1 G0/1.30 172.17.30.1 255.255.255.0 不适用 R1 G0/1.…

前景贴纸类特效SDK,面向企业的技术解决方案

随着数字媒体技术的快速发展,视频内容在社交媒体、广告、教育等领域的应用越来越广泛。为了增加视频的吸引力和趣味性,许多企业开始寻求在视频中添加特效和贴纸。美摄科技的前景贴纸类特效SDK为企业提供了一种高效、灵活的解决方案,满足不同的…

R语言VRPM包绘制多种模型的彩色列线图

列线图,又称诺莫图(Nomogram),它是建立在回归分析的基础上,使用多个临床指标或者生物属性,然后采用带有分数高低的线段,从而达到设置的目的:基于多个变量的值预测一定的临床结局或者…

生命在于折腾——WeChat机器人的研究和探索

一、前言 2022年,我玩过原神,当时看到了云崽的QQ机器人,很是感兴趣,支持各种插件,查询游戏内角色相关信息,当时我也自己写了几个插件,也看到很多大佬编写的好玩的插件,后来因为QQ不…

微信聊天记录生成词云

目录 前置准备一、获取微信聊天记录(一)配置MuMu模拟器(二)微信数据备份与恢复(三)获取微信聊天记录文件至电脑(四)获取EnMicroMsg.db的密钥(五)使用SQLciphe…

详解线性分组码(linear code)

目录 一. 介绍 二. 线性分组码 三. 生成矩阵 四. 对偶编码 五. 校验矩阵 六. 陪集编码 七. 小结 一. 介绍 Low-density parity-check,简称LDPC码,翻译为低密度奇偶校验码。 我们所熟悉的LDPC码就是一个典型的线性分组码(linear bloc…

2023年度AI盘点 AIGC|AGI|ChatGPT|人工智能大模型

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 2023年是人工智能大语言模型大爆发的一年,一些概念和英文缩写也在这一年里集中出现,很容易混淆,甚至把人搞懵。 文章目录 前言01 《ChatGPT 驱动软件开…

气象条件对铸铁平台地基深度有哪些影响呢——河北北重

气象条件对铸铁平台地基有以下影响: . 1.地震 地震可能导致地基的震动和错动,因此地震活跃区域的建筑物通常需要更深的地基以提供更大的稳定性。 2..温度变化:气温的变化会导致地基中的土壤膨胀和收缩,从而影响地基的稳定性。特…

展厅设计更好的方法

一、与公司形象契合 在展厅规划时必定要留意公司的LOGO、主色调,以及企业文明。在展现时使用丰满的展厅规划传达出企业的理念。而在功用设置上,应当考虑内涵功用,从展厅作业人员的视点动身,为展厅作业人员提供杰出的环境&#xff…

书生·浦语大模型实战营-学习笔记6

目录 OpenCompass大模型测评1. 关于评测1.1 为什么要评测?1.2 需要评测什么?1.3 如何评测?1.3.1 客观评测1.3.2 主观评测1.3.3 提示词工程评测 2. 介绍OpenCompass工具3. 实战演示 OpenCompass大模型测评 1. 关于评测 1.1 为什么要评测&#…

《WebKit 技术内幕》学习之五(4): HTML解释器和DOM 模型

4 影子(Shadow)DOM 影子 DOM 是一个新东西,主要解决了一个文档中可能需要大量交互的多个 DOM 树建立和维护各自的功能边界的问题。 4.1 什么是影子 DOM 当开发这样一个用户界面的控件——这个控件可能由一些 HTML 的标签元素…

单域名证书,多域名证书,通配符证书怎么选?了解这些就够了

首次购买证书时,我们经常遇到不知道选择那种证书,由于缺乏相关的了解,稍不留神,就会踩坑!那初次购买证书时,了解这几点其实就足够了! 第一点,了解证书的类型。 证书一般分为DV&am…
最新文章