3.2.1 正則表達式的语法(1)

(?

...)

这个语法规则是前面的扩展。主要在问号位置能够替换为特定的字符。

样例:

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 深圳

posted @ 2018-03-21 11:41  zhchoutai  阅读(131)  评论(0编辑  收藏  举报