2016-07-27 32 views

回答

6

使用分组构造(...)而不是字符类[...]围绕替代:

p = re.compile("[AG].{2}(?:ATG|ATA|AAG).G") 
         ^^^^^^^^^^^^^^^ 

(?:ATG|ATA|AAG)比赛3个序列:要么是ATG,或ATAAAG[ATG|ATA|AAG]字符分级匹配1个字符,可以是A,T,G|

请注意{1}是多余的,可以删除。

的Python:

import re 
p = re.compile("[AG].{2}(?:ATG|ATA|AAG).G") 
regex_result = p.search('ZZZAXXATGXGZZZ') 
print(regex_result.group()) 
# => AXXATGXG 

IDEONE demo

+0

美丽的解释。你救了我的一天! –