python正则表达式之断言

一、肯定断言

1.1.前向肯定断言
前向肯定断言:表示你希望匹配的字符串前面是pattern匹配的内容时,才匹配。
语法:(?<=pattern)
1.2.后向肯定断言
后向肯定断言:表示你希望匹配的字符串的后面是pattern匹配的内容时,才匹配
语法:(?=pattern)
1.3.肯定断言说明
1、如果在一次匹配过程中,需要同时用到前向肯定断言和后向肯定断言时,那你必须将前向肯定断言表达式写在要匹配的正则表达式的前面,而后向肯定断言表达式写在你要匹配的字符串的后面,表示后向肯定模式之后,前向肯定模式之前。
2、前向肯定断言括号中的正则表达式必须是能确定长度的正则表达式,比如\w{3},而不能写成\w*或者\w+或者\w?等这种不能确定个数的正则模式符。

案例:获取C语言代码中的注释内容
import re
s=’’'char a=“hello world”; char b=‘c’; / this is
comment / int c=1; / this is multiline comment /’’’
a=re.compile(r"(?<=/*).
(?=*/)")
print(a.findall(s))
二、否定断言
2.1.前向否定断言
前向否定断言:表示你希望不匹配的字符串前面是pattern匹配的内容时,才匹配。
语法:(?!=pattern)
2.2后向否定断言
后向否定断言:表示你希望匹配的字符串后面不是pattern匹配的内容时,才匹配。
语法:(?!pattern)
2.3否定断言说明
1、跟前向肯定断言一样,前向否定断言括号中的正则表达式必须是能确定长度的正则表达式,比如\w{3},而不能写成\w*或者\w+或者\w?等这种不能确定个数的正则模式符

案例:
1、匹配不包含连续字符串abc的单词。s='abcddd qweabee ddabc abc cba’
import re
s=“abcddd qweabee ddabc abc cba”
result=re.finditer(r"\b((?!abc)\w)+\b",s)
print([i.group() for i in result])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值