(?...)
这个语法规则是前面的扩展,主要在问号位置可以替换为特定的字符。
例子:
print('(?...)')
m=re.findall(r'(a...)',r'abcdefaghijk')
ifm:
print(m)
输出结果如下:
(?...)
['abcd','aghi']
(?#...)
括号内容注释掉,不起作用。在正则表达式分析时,跳过这些规则。
例子:
print('(?#a)')
m=re.findall(u'(?#a)i',u'aiLmsuxaaaadefagaiLmsuxhijk')
ifm:
print(m)
输出结果如下:
(?#a)
['i','i','i']
(?=...)
向前提前识别模式,当向前面字符符合等号中的字符时,就认为匹配了,但这些字符不跳过。比如Isaac(?=Asimov),在Isaac字符后面碰到Asimov字符才会把这个Isaac识别出来,但Asimov不会跳过去。
例子:
importre
print('Isaac(?=Asimov)')
m=re.findall(u'Isaac(?=Asimov)',u'abcdIsaacAsimovttttt')
ifm:
print(m)
输出结果如下:
Isaac(?=Asimov)
['Isaac']
蔡军生 QQ:9073204 深圳