(?
...)
这个语法规则是前面的扩展。主要在问号位置能够替换为特定的字符。
样例:
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 深圳