第11.20节 Python 中正则表达式的扩展功能:后视断言、后视取反

python:正则表达式语法 阅读详情

一、 引言
在《第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反》中老猿介绍了前视断言和前视取反,与二者对应的还有后视断言和后视取反。

二、 (?<=…)后视断言(lookbehind assertion)
后视断言又称为正向后视断言、后视断定、后行断言等,与前视断言功能类似,只是前视断言是找匹配串的右边要与前视断言指定的模式匹配,而后视断言是找匹配串的左边要与后视断言指定的模式匹配。

语法:(?<=…),其中…为一个子正则表达式

例子:
要使用后视断言查找Python前有LaoYuan的字符串:

>>> re.search('(?<=LaoYuan)Python','Learning Python with LaoYuan,LaoYuanPython accompanies you to progress')
<re.Match object; span=(36, 42), match='Python'>
>>>

注意:
1、后视断言必须放在真正要匹配模式的左边,因为是在左边查找是否有字符串匹配后视断言要求;
2、后视断言从匹配串反向往左边查找,如上例中先找到Python,再往左逐一匹配看是否有LaoYuan;
3、后视断言的匹配模式中匹配的字符串必须是定长的,不能是可变长的,如不能使用{m,n}、*、+等重复匹配模式。

三、 (?<!…)后视取反(negative lookbehind assertion)
也称反向后视断言、负向后视断言等,后视取反与后视断言的关系与前视取反与前视断言的关系一样,是匹配串向左不能出现… 子正则表达式指定的样式。

语法:(?<!…),其中…为一个子正则表达式

例子:

>>> re.search('(?<!LaoYuan)Python','Learning Python with LaoYuan,LaoYuanPython accompanies you to progress')
<re.Match object; span=(9, 15), match='Python'>

注意:
1、后视取反必须放在真正要匹配模式的左边,因为是在左边查找是否不会出现指定模式的字符串;
2、后视取反的匹配模式中匹配的字符串也必须是定长的,不能是可变长的,如不能使用{m,n}、*、+等重复匹配模式。

老猿Python,跟老猿学Python!
博客地址:https://blog.youkuaiyun.com/LaoYuanPython

请大家多多支持,点赞、评论和加关注!谢谢!

后向断言/后向预查/反向断言/反向预查(lookbehind assertions) 后向断言(Lookbehind Assertions)后向断言(Lookbehind Assertions)1 解释2 后向肯定断言(Positive Lookahead Assertions)2.1 语法2.2 示例3 后向否定断言(Negative Lookbehind Assertions) 后向断言(Lookbehind Assertions) 在本中,你将学习正则表达式中后向断言,包括其语法和示例。 本文将以从左往右(left-to-right)的匹配顺序进行讲解。 和前向断言一样,后向断言也是 阅读详情

相关推荐

第11.20节 Python 中正则表达式的扩展功能:后视断言、后视取反.rar

第11.20节 Python 中正则表达式的扩展功能:后视断言、后视取反.rar

正则表达式,你不知道的先行断言与后行断言

很多地方称为零宽度断言(Zero-width Assertions),我更倾向于使用零长度断言。首先理解下什么是字符消费(Consume Character):在正则表达式匹配的过程中,正则表达式引擎对输入文本进行逐个字符匹配,当匹配到一个字符时,它会将该字符视为已经“消费”了,因此该字符不会再被用于匹配其他部分。而环顾断言与输入文本进行匹配后,会放弃匹配结果,不消费输入文本中的字符,只返回输入文本是否匹配的结果:是与否。零长度:是指对输入文本的字符消费长度是零;断言。

weixin_44189802的博客 3109

光电转换器件PMT,APD总结

PMT和APD都属于单点探测器,只能探测光子信息,可以通过扫描方式测光谱。 1. PMT PMT:光电倍增管,是光子技术器件中的一个重要产品,它是一种具有极高灵敏度和超快时间响应的光探测器件。 原理:光电倍增管是一种真空器件。它由光电发射阴极(光阴极)和聚焦电极、电子倍增极及电子收集极(阳极)等组成。当光照射到光阴极时,光阴极向真空中激发出光电子。这些光电子按聚焦极电场进入倍增系统,并通过进一步的二次发射得到的倍增放大。然后把放大后的电子用阳极收集作为信号输出。 优点:因为采用了二次发射倍增系统,.

Ammon_Zhang的博客 1万+

re正则表达式 正向后视断言

【代码】re正则表达式 正向后视断言。

YHKKun的博客 474

【电子元件篇】MOSFET场效应管作用、选型和测量指南-超简单解读

场效应管是一种电压控制型半导体器件,相比三极管具有输入阻抗高、噪声小、功耗低等优势。主要分为结型和绝缘栅型两大类,后者又可分为耗尽型和增强型MOS管。场效应管通过栅极电压控制漏极电流,具有转移特性和输出特性两大静态特性,以及快速的开关特性。其关键参数包括饱和漏源电流、夹断电压、跨导等,应用场景涵盖信号放大、恒流源、阻抗变换等领域。使用时需根据电路需求选择合适类型,如结型管适合一般放大,功率MOSFET适合高压大电流场合。检测时可用万用表电阻档初步判断好坏和放大能力。

2301_81299416的博客 2540

Android加密开发实战:Spongy Castle集成与国密算法应用指南

在移动应用开发中,数据加密是保障用户隐私和信息安全的基石。其原理基于密码学算法,通过对数据进行编码转换,确保即使数据被截获也无法被未授权方解读。这项技术的核心价值在于为敏感信息提供机密性、完整性和身份验证,广泛应用于用户登录、本地存储、网络通信等场景。对于Android开发者而言,系统自带的加密功能有时无法满足需求,特别是涉及国密算法或更丰富算法套件时。本文聚焦于Spongy Castle这一专为Android定制的加密库,它有效解决了与系统内置Bouncy Castle的兼容性问题,并提供了对SM4等国密

weixin_27722377的博客 308

正则表达式的先行断言(lookahead)和后行断言(lookbehind)

之所以叫后行断言,是因为正则表达式引擎在匹配字符串和表达式时,是从前向后逐个扫描字符串中的字符,并判断是否与表达式符合,当在表达式中遇到该断言时,正则表达式引擎需要往字符串前端检测已扫描过的字符,相对于扫描方向是向后的。pattern) 中,有个小于号,同时也是箭头,对于自左至右的文本方向,这个箭头是指向后的,这也比较符合我们的习惯。如同 ^ 代表开头,$ 代表结尾,\b 代表单词边界一样,先行断言和后行断言也有类似的作用,它们只匹配某些位置,在匹配过程中,不占用字符,所以被称为。号来表示,所以有!

其实计算机并没有漏洞,漏洞在于人的身上 2674

vue3 - 实现WebRTC播放实时rtsp视频流+NVR录像机回放,web前端浏览器网页播放RTSP推流,支持海康威视大华等摄像头/监控设备对接(监控摄像头录像及回放,拿到rtsp视频流如何处理)

vue3,webrtc-streamer,rtsp视频流,监控画面,nvr录像机,回放功能,监控摄像头设备,vue3播放Rtsp推流示例代码,前端如何在vue3项目中播放rtsp视频流,VUE中播放RTSP实时推流播放解决方案,vue3 webrtc播放rtsp视频流,vue3实现rtsp视频流浏览器实时播放,海康摄像机、NVR、流媒体服务器、回放取流RTSP地址,vue3+vite+ts 使用webrtc-streamer播放海康rtsp监控视频,播放海康rtsp监控视频,海康摄像机/录像机预览+回放RT

✅ 精选推荐文章 1万+

正则表达式之优美匹配,视前匹配,视后匹配 (?x)(?=) (?=)

接着昨天的内容今天探讨,优美匹配和视前和视后匹配 1.格式化匹配 import re reg = r'''(?x)(\d{4})? #匹配前四个 支持注释 (-)? (\d{8}) ''' num = '0571-88982571, 0572-05975867,057269781578, 0539-6...

asd4172855的博客 404

IgH EtherCAT 从入门到精通:第 4 章 网络设备驱动选型与配置

摘要:本章详细介绍了EtherCAT主站网络设备驱动的选型与配置。IgH EtherCAT Master提供Generic通用驱动和Native原生驱动两种方案:Generic驱动通过Linux Socket接口实现,兼容性强但实时性较差;Native驱动通过修改网卡驱动绕过内核协议栈,具有更低延迟和更小抖动。文章具体分析了e1000/e1000e/igb/igc等Intel网卡驱动以及r8169/8139too等Realtek驱动的配置方法,并提供了驱动选型建议。对于实时性要求高的场景,推荐使用Nativ

从事嵌入式linux android驱动开发,拥有全栈能力 304

【Proteus仿真】点亮小灯系列仿真——小灯闪烁/流水灯/交通灯

本文介绍了基于AT89C51单片机的LED控制案例,共包含5个实例:1)单个LED闪烁;2)共阳极流水灯;3)共阴极流水灯;4)花样流水灯;5)交通灯模拟。每个案例详细说明了电路原理图、接线方式和控制程序实现,其中重点讲解了PWM调光原理及其在LED控制中的应用。案例由简至繁,从基础I/O控制到复杂花样显示,最后实现交通灯逻辑控制,展示了单片机在LED控制中的典型应用方法。文中提供了完整的源代码,便于读者理解和实践。

XU157303764的博客 1883

python正则表达式和断言

正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式(规则)的文本。,要想匹配regular中的re,但不能匹配expression 中的re,可以用re(?先行断言,是当扫描指针位于某处时,引擎会尝试匹配指针还未扫过的字符,先于指针到达该字符,故称为。练习:利用断言实现用户名限制,限制出现大小写,数字,字符16位,首字母大写。后行断言,引擎会尝试匹配指针已扫过的字符,后于指针到达该字符,故称为。例如:匹配字符串中,单词开头是re的,可以用(?

weixin_53434577的博客 1232

基于 Simulink 的三相四线制整流器在三相不平衡负载下的中点电位平衡控制实战教程

本文为三相四线制整流器在中点电位不平衡时的Simulink仿真教程。首先分析中点电位漂移的电荷不平衡机理,提出零序电压注入控制策略。详细演示建模步骤:搭建三相四线制主电路,构建中点平衡控制算法(含MATLAB函数代码),实现控制信号叠加与PWM生成。通过对比仿真验证控制效果,并给出零序电压限幅、中性线电感影响等工程建议。该方案能有效抑制三相不平衡负载下的中点电位波动,保证系统稳定运行。

xiaoheshang_123的博客 50

python正则怎么取反_第11.20节 Python 中正则表达式的扩展功能:后视断言、后视取反...

一、引言在《第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反》中老猿介绍了前视断言和前视取反,与二者对应的还有后视断言和后视取反。二、(?<=…)后视断言(lookbehind assertion)后视断言又称为正向后视断言、后视断定、后行断言等,与前视断言功能类似,只是前视断言是找匹配串的右边要与前视断言指定的模式匹配,而后视断言是找匹配串的左边要与后视断言指定的模...

weixin_39864387的博客 173

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

第十一章 Python 支撑正则表达式处理的re模块

re模块是Python中支持正则表达式处理的模块,老猿学了之后,发现这部分内容太多,要表述清楚需要开单章才能写清楚,但老猿觉得re模块的使用对多数人来说要通过教程学习去熟练掌握很难,需要经常接触练习加上速查手册才能解决问题。而最近老猿对新知识的学习感觉很迫切,好多要学的内容,所以最终决定不在这个模块过多投入,只写几个简单章节来导入,如果大家要学习详细知识,可以在网上找相关的教程。 本章目录: 老猿...

老猿Python 1633

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python 正则学习(二)

1. (?=...)和(?!...) 在目标字符串中实现一个前视匹配,而不必实际上使用这些字符串。前者是一个正向前视断言,后者是负向前视断言。import re data=''' Guido van Rossum Tim Peters Alex Martelli Just van Rossum Raymond Hettinger ''' print(re...

王小胖的博客 357

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

python3正则表达式前向、后向断言详解,附实例

这段时间因项目需要用正则表达式,初始打算花两三个小时学习一下,结果经过3天疯狂度娘,敲代码验证,终于拿下。期间发现网上资料对于python3正则表达式前向、后向断言语焉不详,故整理成文分享。 >>前向断言 前向断言可以分为前向肯定断言和前向否定断言两种形式,属于零宽断言。 >>前向肯定断言:(?=...) 符号...表示包含的子组正则表达式。前向肯定断言一般使...

u013705518的博客 5844

Python的re模块 --- 正则表达式操作

这个模块提供了与 Perl 语言类似的正则表达式匹配操作。 模式和被搜索的字符串既可以是 Unicode 字符串 (str) ,也可以是8位字节串 (bytes)。 但是,Unicode 字符串与8位字节串不能混用:也就是说,你不能用一个字节串模式去匹配 Unicode 字符串,反之亦然;类似地,当进行替换操作时,替换字符串的类型也必须与所用的模式和搜索字符串的类型一致。 正则表达式使用反斜杠...

Lansonli(蓝深李)的博客 1408

python 正则表达式 断言 不定长表达式_正则表达式的变长后置断言替代

在Python / PHP / JavaScript中是否存在支持可变长度lookbehind-assertion的正则表达式实现?/(?如何编写具有相同含义但不使用lookbehind-assertion的正则表达式?是否有可能在一天之内实现这种断言?我认为情况要好得多。更新:(1)已经有一些正则表达式实现支持变长后向断言。Python模块正则表达式(不是standardre,而是其他regex...

weixin_39979617的博客 471

python正则表达式扩展符号扩展和一些训练小mark

关于正则式的简要介绍: http://blog.csdn.net/oliverkingli/article/details/78989505 1.扩展符号 2.一些正则式训练 # -*- coding: utf-8 -*- """ Created on Sat Jan 6 19:20:43 2018 @author: lisir """ ''' windows环境下

OliverkingLi的博客 1605

python中的re模块中的向后引用和零宽断言

1.后向引用 pattern = re.compile(r"(\w+)")#['hello', 'go', 'go', 'hello'] # pattern = re.compile(r"\b(\w+)\b\s+\b")#['hello', 'go', 'go'] # pattern = re.compile(r"\b(\w+)\b\s+\1\b")#['go'] 匹配重复的单词 s...

dili8870的博客 337

正则表达式断言

(?=pattern)零宽正向先行断言(zero-width positive lookahead assertion) (?!pattern)零宽负向先行断言(zero-width negative lookahead assertion) (?<=pattern)零宽正向后行断言(zero-width positive lookbehind assertion) (?<!pattern)零宽负向后行断言(zero-width negative loo...

fanqiliang630的博客 1106

正则表达式

在学习正则表达式的时候有没有这样的困惑,这么多符号这么记呀?某符号代表啥?某符号代表啥?某符号代表啥?某符号代表啥?某符号代表啥?

qq_44776900的博客 162
上一篇: 第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反
下一篇: 第11.21节 Python 中正则表达式的其他扩展功能
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值