一、 引言
在《第11.19节 Python 中正则表达式的扩展功能:前视断言和前视取反》中老猿介绍了前视断言和前视取反,与二者对应的还有后视断言和后视取反。
二、 (?<=…)后视断言(lookbehind assertion)
后视断言又称为正向后视断言、后视断定、后行断言等,与前视断言功能类似,只是前视断言是找匹配串的右边要与前视断言指定的模式匹配,而后视断言是找匹配串的左边要与后视断言指定的模式匹配。
语法:(?<=…),其中…为一个子正则表达式
例子:
要使用后视断言查找Python前有LaoYuan的字符串:
>>> re.search('(?<=LaoYuan)Python','Learning Python with LaoYuan,LaoYuanPython accompanies you to progress')
>>>
- 1
- 2
- 3
注意:
1、后视断言必须放在真正要匹配模式的左边,因为是在左边查找是否有字符串匹配后视断言要求;
2、后视断言从匹配串反向往左边查找,如上例中先找到Python,再往左逐一匹配看是否有LaoYuan;
3、后视断言的匹配模式中匹配的字符串必须是定长的,不能是可变长的,如不能使用{m,n}、*、+等重复匹配模式。
三、 (? 也称反向后视断言、负向后视断言等,后视取反与后视断言的关系与前视取反与前视断言的关系一样,是匹配串向左不能出现… 子正则表达式指定的样式。
语法:(?
例子:
>>> re.search('(?
- 1
- 2
注意:
1、后视取反必须放在真正要匹配模式的左边,因为是在左边查找是否不会出现指定模式的字符串;
2、后视取反的匹配模式中匹配的字符串也必须是定长的,不能是可变长的,如不能使用{m,n}、*、+等重复匹配模式。
老猿Python,跟老猿学Python!
博客地址:http://iyenn.com/index/link?url=https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!
文章知识点与官方知识档案匹配,可进一步学习相关知识
Python入门技能树首页概览333596 人正在系统学习中

老猿Python
微信公众号
专注Python相关语言、图像音视频处理、AI


评论记录:
回复评论: