python 正则表达式 断言 不定长表达式_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、付费专栏及课程。

余额充值