(?...)
这个语法规则是前面的扩展,主要在问号位置可以替换为特定的字符。
例子:
print(‘(?...)‘)
m = re.findall(r‘(a...)‘, r‘abcdefaghijk‘)
if m:
print(m)
输出结果如下:
(?...)
[‘abcd‘, ‘aghi‘]
(?#...)
括号内容注释掉,不起作用。在正则表达式分析时,跳过这些规则。
例子:
print(‘(?#a)‘)
m = re.findall(u‘(?#a)i‘, u‘aiLmsux aaaadefagaiLmsuxhijk‘)
if m:
print(m)
输出结果如下:
(?#a)
[‘i‘, ‘i‘, ‘i‘]
(?=...)
向前提前识别模式,当向前面字符符合等号中的字符时,就认为匹配了,但这些字符不跳过。比如Isaac(?=Asimov),在Isaac字符后面碰到Asimov字符才会把这个Isaac识别出来,但Asimov不会跳过去。
例子:
import re
print(‘Isaac(?=Asimov)‘)
m = re.findall(u‘Isaac(?=Asimov)‘, u‘abcdIsaacAsimovttttt‘)
if m:
print(m)
输出结果如下:
Isaac(?=Asimov)
[‘Isaac‘]
蔡军生 QQ:9073204 深圳
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/caimouse/article/details/47053911