Python基础 之 Python3 正则表达式 8

简介: Python3 正则表达式

Python基础 之 Python3 正则表达式 8

Python3 正则表达式

compile 函数

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。

语法格式为:

re.compile(pattern[, flags])

参数:

pattern : 一个字符串形式的正则表达式
flags 可选,表示匹配模式,比如忽略大小写,多行模式等,具体参数为:
re.I 忽略大小写
re.L 表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境
re.M 多行模式
re.S 即为' . '并且包括换行符在内的任意字符(' . '不包括换行符)
re.U 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库
re.X 为了增加可读性,忽略空格和' # '后面的注释

实例

>>>import re
>>> pattern = re.compile(r'\d+')                    # 用于匹配至少一个数字
>>> m = pattern.match('one12twothree34four')        # 查找头部,没有匹配
>>> print( m )
None
>>> m = pattern.match('one12twothree34four', 2, 10) # 从'e'的位置开始匹配,没有匹配
>>> print( m )
None
>>> m = pattern.match('one12twothree34four', 3, 10) # 从'1'的位置开始匹配,正好匹配
>>> print( m )                                        # 返回一个 Match 对象
<_sre.SRE_Match object at 0x10a42aac0>
>>> m.group(0)   # 可省略 0
'12'
>>> m.start(0)   # 可省略 0
3
>>> m.end(0)     # 可省略 0
5
>>> m.span(0)    # 可省略 0

(3, 5)

在上面,当匹配成功时返回一个 Match 对象,其中:

group([group1, …]) 方法用于获得一个或多个分组匹配的字符串,当要获得整个匹配的子串时,可直接使用 group() 或 group(0);
start([group]) 方法用于获取分组匹配的子串在整个字符串中的起始位置(子串第一个字符的索引),参数默认值为 0;
end([group]) 方法用于获取分组匹配的子串在整个字符串中的结束位置(子串最后一个字符的索引+1),参数默认值为 0;
span([group]) 方法返回 (start(group), end(group))。
目录
相关文章
QT QTreeWidget 实现模糊查询和多选的勾选状态
#QT QTreeWidget 实现模糊查询和勾选状态 本文的主要代码基本都是总结2篇博客实现了模糊查询模糊查询和勾选状态QTreeWidget实现勾选基本上所有的操作都是递归操作,个人测试了性能,如果1w项左右的数据时,没啥问题,如果有几w,那么勾选所有的,效率很慢,需要几秒钟,大家可以测试,不废话了,直接上代码:如果有啥不懂的,可以在留言,会很详细的给出解释的
494 0
|
弹性计算 人工智能 安全
阿里云弹性计算产品线负责人张献涛 为计算提速,弹性计算的创新与普惠
“阿里云始终围绕‘稳定、安全、性能、成本、弹性’的目标不断创新,为客户创造业务价值。”10月31日,杭州云栖大会上,阿里云弹性计算计算产品线负责人张献涛表示,通过持续的产品和技术创新,阿里云发布了HPC优化实例等多款新品,性能可提升40%,并对g8i等多款第八代ECS实例升级算力、降低成本,让客户真正体验到云计算带来的创新和普惠。
阿里云弹性计算产品线负责人张献涛  为计算提速,弹性计算的创新与普惠
|
缓存 NoSQL 网络协议
【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
221 0
【Azure Redis 缓存】Lettuce 连接到Azure Redis服务,出现15分钟Timeout问题
|
10月前
|
前端开发 JavaScript 程序员
HarmonyOS NEXT开发-ArkTS五
本文介绍了ArkTS中的联合类型和枚举类型,讲解了定义与使用方法,并详细阐述了模块的导出与导入(包括静态导入、动态导入及HarmonyOS SDK的开放能力导入),帮助开发者更好地理解和应用这些特性。君志所向,一往无前!
214 0
HarmonyOS NEXT开发-ArkTS五
|
10月前
|
存储 人工智能 安全
拒绝数据外泄!企业如何用权限管理保障文档安全?
在数字化办公中,文档协作工具不可或缺,但安全风险也随之增加。本文探讨了文档安全的关键技术,包括加密(如TLS、AES)、权限管理(最小权限原则、动态调整)和访问控制(MFA、NAC),并结合私有化部署的优势,如数据掌控、定制安全策略及合规性,提出了稳固的数据防护方案。尤其针对金融、医疗等行业,私有化部署能有效规避数据风险,提升安全性和管理效率。
305 13
|
并行计算 算法 量子技术
量子计算进展:中国“九章三号”的里程碑意义
【9月更文挑战第26天】近年来,量子计算作为前沿科技的代表,正以前所未有的速度推进信息技术革命。中国科学技术大学团队成功构建了包含255个光子的量子计算原型机“九章三号”,标志着中国在量子计算领域取得重大进展,也为全球量子科技树立了新的里程碑。“九章三号”在光子数量、光子探测技术和处理速度等方面实现了重大突破,处理速度比上一代提升了100万倍。这一成果不仅巩固了中国在量子计算领域的国际领先地位,还为量子计算的实用化迈出了重要一步,进一步拓展了人类对量子世界的认知边界,提升了国家竞争力。这一成功标志着中国量子计算进入了一个崭新时代。
|
运维 应用服务中间件 Linux
自动化运维:使用Ansible进行批量服务器配置
【8月更文挑战第31天】 在现代IT基础设施中,高效、一致且可靠的服务器管理是至关重要的。本文将引导你通过Ansible这个强大的自动化工具来简化你的日常运维任务,从而让你能够更加专注于业务的核心价值。我们将从Ansible的基础讲起,逐步展示如何利用它来执行批量服务器配置,包括安装软件、更新系统以及部署应用。准备好让你的运维工作变得更加轻松和高效吧!
|
安全 网络协议
SIP 协议的主要功能
【8月更文挑战第24天】
730 0
|
Java 开发者 UED
异常处理机制:让代码更健壮的秘籍
Java异常处理确保程序健壮性。分为检查性异常(需编译时处理)和运行时异常。使用try-catch-finally结构捕获和管理异常,finally确保资源清理。通过throw抛出异常,throws声明可能抛出的异常。自定义异常增强代码可读性。最佳实践包括精确捕获异常、避免空catch、妥善管理资源。异常处理是提升软件质量的关键。
260 3
|
存储 PyTorch 定位技术
Transformers 4.37 中文文档(七十一)(1)
Transformers 4.37 中文文档(七十一)
320 0