Python正则表达式前向否定断言使用示例,python正则表达式,正则表达式的断言在有些场
Python正则表达式前向否定断言使用示例,python正则表达式,正则表达式的断言在有些场
正则表达式的断言在有些场景下很有用,我们通过一个真实的使用场景介绍下python的前向否定断言的使用。
假定我们要处理一段html,我们要替换掉相对url,例如<a href="abc.html">text</a>
这个a标签我们要替换成text,而对于<a href="http://byrx.net/code-snippet/">代码</a>
这样的a标签则要保留不做替换。
这个应用场景下就需要判断A标签的href属性如果不是以http://开头则匹配,即要做前向否定的断言.
前向否定断言的语法: (?!pattern)
括号中是?!然后是要否定的模式。
下面我们看下实现的全部代码:
import rep = re.compile(r'<a href="(?!https?://)[^"]+">(?P<txt>.*?)</a>')input1 = '<a href="abc">link text</a>'input2 = '<a href="http://byrx.net">link text</a>'print p.sub(r'\g<txt>',input1)print p.search(input1)print p.search(input2)
理解了前向否定断言其他几种断言,包括前向肯定断言,后向肯定断言,后向否定断言都很容易理解了,其语法说明如下。
前向肯定断言的语法(?=pattern)
前向否定断言的语法 (?!pattern)
后向肯定断言的语法 (?<=pattern)
后向否定断言的语法 (?<!pattern)
其他几种断言的用法就不再赘述。
相关内容
- python itertools模块学习笔记,pythonitertools,python itert
- Decorate an output stream with print-like methods,decorateprint-lik
- Python合并两个字典,python合并字典,Python合并两个字典
- python生成文件目录树代码,python生成树代码,code:import
- python实现Memento模式,python实现memento,下面的例子通过
- Python生成字母,数字,特殊符号组成的随机密码,pyt
- Tkinter的ToolTip控件,tkintertooltip,Tkinter的Tool
- python中的filter方法,pythonfilter方法,filter函数:fil
- python自动连接ssh的代码,pythonssh代码,python自动连接ss
- Python处理命令行参数示例代码,python示例代码,下面代码
评论关闭