丘一丘正则表达式

正则表达式(regular expression,regex,RE)

  • 正则表达式是一种用来简洁表达一组字符串的表达式
  • 正则表达式是一种通用的字符串表达框架
  • 正则表达式是一种针对字符串表达“简洁”和“特征”思想的工具
  • 正则表达式可以用来判断某字符串的特征归属

正则表达式常用操作符

操作符说明实例
.表示任意单个字符py. 可以匹配pyc,pyy,py!等等
[ ]字符集,对单个字符给出取值范围[abc]可以匹配a或b或c;[0-9a-zA-z\_]可以匹配一个数字、一个字母或者一个下划线
[^ ]非字符集,对单个字符给出排除范围[^abc]可以匹配非a或非b或非c的单个字符
*前一个字符0次或多次扩展abc* 可以匹配ab、abc、abcc、abccc等等
+前一个字符的1次或多次扩展abc+可以匹配abc、abcc、abccc等等
?前一个字符0次或1次扩展abc?可以匹配ab、abc
|左右表达式任意一个abc|def表示abc、def
{m}扩展前一个字符m次ab{2}c匹配abbc
{m,n}扩展前一个字符m至n次数(含n)ab{1,2}c可以匹配abc、abbc
^匹配字符串开头^abc表示abc且在一个字符串的开头,^\d表示必须以数字开头
$匹配字符串结尾abc表示abc且在一个字符串的结尾、\d$白哦是必须以数字结尾
( )分组标记,内部只能使用|操作符(abc|def)表示abc、def
\d可以匹配一个数字,相当于[0-9]\d{3}表示匹配3个数字,如010
\w可以匹配一个字母或者数字或者下划线,相当于[a-zA-Z0-9_]\w\w\d可以匹配'py3'
\s可以匹配一个空格(也包括Tab等空白字符)\s+表示至少有一个空格,如' '、' '

精确匹配

在正则表达式中,如果直接给出字符,就是精确匹配

  • 'pyt' 匹配'pyt'
  • '00\d' 可以匹配'007'
  • '\w\d' 可以匹配'!5'
  • 'ye.' 可以匹配'yes'
  • '(P|p)python' 可以匹配'Python'、'python'

高阶精确匹配,经典实例

  • ^[A-Za-z]+$ 匹配由26个英文字母组成的字符串,如'abrg'、'abgsfsfga'
  • [a-zA-Z\_][0-9a-zA-Z\_]* 可以匹配由字母或者下划线开头、后接任意一个由字母、数字或者下划线组成的字符串,也就是python的合法变量
  • ^-?\d+$ 匹配整数形式的字符串
  • ^[0-9][1-9][0-9]$ 匹配正整数形式的字符串
  • [1-9]\d{5} 中国境内邮政编码,6位
  • [\u4e00-\u9fa5] 匹配中文字符
  • \d{3}-\d{8}|\d{4}-\d{7} 国内电话号码,010-68913536

python正则表达式模块,(Re模块)

  • re是python的标准库,主要用于字符串匹配
  • re库采用raw string类型(原生字符串类型)表示正则表达式,例如r'[1-9]\d{5}',raw string是不包含对转义符再次转义的字符串
  • re库也可以采用string类型表示正则表达,但是较为繁琐,例如'[1-9]\\d{5}'

re库功能函数

函数说明
re.search()在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
re.match()从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findall()搜索字符串,以列表类型返回全部能匹配的子串
re.split()将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.finditer搜索字符串,返回一个匹配结果的迭代类型,每个迭代元素是match对象
re.sub()在字符串中替换所有匹配正则表达式的子串,返回替换后的字符串
1. re.search(pattern,string,flags=0)

在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象

  • pattern:正则表达式的字符串或原生字符串表示
  • string:待匹配字符串
  • flags: 正则表达式使用时的控制标记

常用标记说明
re.I re.IGNORECASE忽略正则表达式的大小写,[A-Z]能够匹配小写字符
re.M re.MULTILINE正则表达式中的^操作符能够将给定字符串的每行当做匹配开始
re.s re.DOTALL正则表达式中的.操作符能够匹配所有字符串,默认匹配除换行外的所有字符串
2. re.match(pattern,string,flags=0)

从一个字符串的开始位置起匹配正则表达式,返回match对象

  • pattern:正则表达式的字符串或者原生字符串表示
  • string:待匹配字符串
  • flags:正则表达式使用时的控制标记

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

搜索字符串,以列表类型返回全部能匹配的字符串

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

将一个字符串按照正则匹配结果进行分割,返回列表类型

  • maxsplt:最大分割数,剩余部分作为最后一个元素输出

5. re.finditer(pattern,string,flags=0)

搜索字符串,返回一个匹配结果的迭代类型,每个迭代类型是match对象

6. re.sub(pattern,repl,string,cout=0,flags=0)

在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串

  • repl:替换匹配字符串的字符串
  • cout:匹配的最大替换次数

re库的面向对象用法

在python中使用正则表达式的时候,re模块内部会做两件事:

  1. 编译正则表达式,如果正则表达式本身不合法,会报错

  2. 用编译后的正则表达式去匹配字符串

    regex = re.compile(pattern,flags=0) 将正则表达式的字符串形式编译成正则表达式对象

  • pattern:正则表达式的字符串或原生字符串表示
  • flags:正则表达式使用时的控制标记

compile后生成了regular expression对象,由于该1对象包含了正则表达式,所以调用对应的方法不用给出正则字符串

re库的Match对象

  • Match对象是一次匹配的结果,包含很多信息

Match对象的属性

属性说明
.string待匹配的文本
.re匹配使用的pattern对象(正则表达式)
.pos正则表达式搜索文本的开始位置
.endpos正则表达式搜索文本的结束位置

Match对象的方法

方法说明
.group(0)获得匹配后的字符串
.start()匹配字符串在原始字符串的开始位置
.end()匹配字符串在原始字符串的结束位置
.span()返回(.start(),.end())一个元组

re库的贪婪匹配和最小匹配

re库默认使用贪婪匹配,即匹配最长的子串

最小匹配

** 最小匹配操作符 **

操作符说明
*?前一个字符0次或者无限次扩展,最小匹配
+?前一个字符1次或者无限次扩展,最小匹配
??前一个字符0次或1次扩展,最小匹配
{m,n}?扩展前一个字符m至n次(包含n),最小匹配

只要输出长度可能不同的,都可以通过在操作符后面加?变成最小匹配

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143193331387014ccd1040c814dee8b2164bb4f064cff000


本文由博客群发一文多发等运营工具平台 OpenWrite 发布

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

倪诗韵古琴雷期展示,琴体秀气

音色通透、细腻,灵敏度高,好不好自己听吧,绝对是入门演奏利器。想不想听试音?试音已经发出来了,但是这床琴已经订出去了,不过琴友可以听听雷期的音色,那就关注我吧

Streamlit实战手册:从数据应用到机器学习模型部署

Streamlit实战手册:从数据应用到机器学习模型部署 简介Streamlit核心功能介绍Streamlit的安装创建第一个Streamlit应用界面布局与导航数据处理与展示 Streamlit的进阶应用交互式组件按钮复选框单选按钮滑块 图表与可视化使用Matplotlib绘图使用Plotly创建交互式图表…

视频号下载助手失效了?如何解决下载视频问题!

在刷短视频的时候难免会遇到部分的视频号视频下载不下来,那我们该如何解决视频号下载问题呢? 视频号下载助手解决方案 视频号下载助手失效分为两种情况! 1、可以解析,但不能下载 根据使用视频号下载助手常见的问题,我们发现会有…

超声波气象站和气象雷达有什么区别

TH-CQX5超声波气象站和气象雷达在气象监测领域各自扮演着重要的角色,但它们的工作原理和应用范围存在明显的区别。 首先,超声波气象站的工作原理主要基于超声波在大气中的传播特性。它利用超声波发射器向周围环境发射超声波信号,并通过测量这…

Emotion Prompt-LLM能够理解并能通过情感刺激得以增强

Large Language Models Understand and Can be Enhanced by Emotional Stimuli 情感智能对我们的日常行为和互动产生了显著的影响。尽管大型语言模型(LLMs)被视为向人工通用智能迈进的一大步,在许多任务中表现出色,但目前尚不清楚…

MES管理系统在生产计划与排产调度流程中的应用

在现代工业生产中,MES管理系统已经成为企业优化生产流程、提升生产效率的重要工具。MES管理系统在生产计划与排产调度中的具体应用,不仅能够帮助企业更好地控制生产过程,还能实现资源的合理配置,从而提高企业的整体竞争力。 首先&…

5G网络架构与组网部署03--5G网络组网部署

1. SA组网与NSA组网 (1)NSA 非独立组网:终端同时接入4G基站和5G基站,只能实现5G部分功能 (2)SA组网【最终目标】:5G基站可以单独提供服务,接入的是5G核心网 区别:同一时间…

许战海战略文库|橋頭品牌突破区域局限打透全国市场的4个建议

自宣统元年(公元1908年)起,重庆南岸区海棠溪古石桥边诞生了一家传奇火锅店——桥头火锅。凭借深厚的文化底蕴和独特的风味,历经百年沉淀桥头火锅已成为南岸区乃至中华餐饮文化中的璀璨明珠。 桥头火锅不仅荣获了“中华老字号”和“中国名菜”两项殊荣&a…

Google云计算原理与应用(四)

目录 七、海量数据的交互式分析工具Dremel(一)产生背景(二)数据模型(三)嵌套式的列存储(四)查询语言与执行(五)性能分析(六)小结 八、…

【网络原理】HTTP 请求 (Request)详解

文章目录 🎍请求格式🎄认识URL🌸query string🌸关于 URL encode 🍀认识 “方法” (method)🌸GET方法🌸POST 方法🌸GET 和 POST 的区别 🌲认识请求 “报头” (header)&…

管理能力学习笔记一:角色转身

管理能力学习是为了解决角色转身后面临的更多更复杂的的问题。初晋管理层,需要转变工作习惯,学会分配时间。 角色转身 建立“授权”意识 通过匹配工作内容与下属员工能力,分配工作,避免陷入下属能力不足 -> 不愿授权 -> 下…

MS08-067 漏洞利用与安全加固

文章目录 环境说明1 MS08_067 简介2 MS08_067 复现过程3 MS08_067 安全加固 环境说明 渗透机操作系统:2024.1漏洞复现操作系统: Windows XP Professional with Service Pack 2- VL (English)安全加固复现操作系统:Windows XP Professional with Service …

Docusaurus和HelpLook:谁更适合做知识库管理

在当今信息化时代,企业建立和维护一个好用、高效、能持续更新的知识库,对内部沟通、团队合作和客户服务都很重要。Docusaurus和HelpLook都是很好的知识库管理工具,但它们的功能和优势各有不同。跟着我一起深入了解两个工具之间的优劣&#xf…

Web框架开发-开发图书管理页面

一、项目需求1.列出图书列表、出版社列表、作者列表2.点击作者,会列出其出版的图书列表3.点击出版社,会列出旗下图书列表4.可以创建、修改、删除 图书、作者、出版社二、项目实现 bookms |-- app01 # 项目应用 | |-- views.py # 视图层代码 | |-- admin.py | |-- app…

launchctl及其配置、使用、示例

文章目录 launchctl 是什么Unix / Linux类似的工具有什么哪个更常用配置使用常用子命令示例加载一个 launch agent:卸载一个 launch daemon:列出所有已加载的服务:启动一个服务:停止一个服务:禁用一个服务:启用一个服务: 附com.example.myagent.plist内容有趣的例子参考 launch…

HuggingChat

HuggingChat 文章目录 HuggingChat一、关于 HuggingChat二、ChatLogin进入对话首页对话 三、Assistants1、使用2、创建新的助理 一、关于 HuggingChat HuggingFace 发布的 Chat 工具 网站:https://huggingface.co/chat/chat-ui space : https://huggingface.co/sp…

探讨苹果 Vision Pro 的空间视频(术语辨析、关键技术、思考)

背景:一位资深视频技术从业者在 Pixvana 工作,积累了丰富的捕获、处理、编码、流传和播放空间媒体经验。 一、术语 空间视频:传统的 3D 视频,呈矩形,包含左右眼视图,如 iPhone15 Pro 和 Vision Pro 可录制。沉浸式视频:非矩形的环绕式视频体验,通常由两个或多个传感器…

深化涉案企业合规改革:从治标到治本的必由之路

在市场经济的大潮中,企业作为经济发展的主体,其健康运行对整个社会的稳定与繁荣至关重要。然而,随着经济全球化的加速和市场竞争的激烈,一些企业在追求利润最大化的过程中,可能会忽视法律法规,甚至触犯法律…

H6603实地架构降压芯片100V耐压 80V 72V 60V 48V单片机/模块供电应用

H6603 是一款内置功率 MOSFET降压开关转换器。在宽输入范围内,其最大持续输出电流 0.8A,具有极好的负载和线性调整率。电流控制模式提供了快速瞬态响应,并使环路更易稳定。故障保护包括逐周期限流保护和过温保护。H6603 最大限度地减少了现有…

五、保持长期高效的七个法则(二)Rules for Staying Productive Long-Term(1)

For instance - lets say youre a writer.You have a bunch of tasks on your plate for the day, but all of a sudden you get a really good idea for an essay. You should probably start writing now or youll lose your train of thought.What should you do? 举例来说…