使用python 2.7和regex使用子串的开头和结尾(密码子)查找子串

时间:2017-01-27 20:50:37

标签: python regex python-2.7

(python 2.7)我有一个RNA序列,我试图找到所有以'AUG'开头的非重叠子串。并以UAG'或者' UGA'或者' UAA' 这就是我正在使用的:

import re
sequence = GAUGCAAAAUAAAUGAUGUAAUAA
search = r"^(AUG(.)*(?:UAG|UAA|UGA))" 
regions = re.findall(search, sequence)
print regions

输出应该是" AUGCAAAA"和" AUGAUG"。但是我得到整个地区' AUGCAAAAUAAAUGAUGUAAUAA'

1 个答案:

答案 0 :(得分:2)

看起来你需要使用

AUG.*?(?=UAG|UAA|UGA)

请参阅this regex demo

<强>详情:

  • AUG - 匹配AUG
  • .*? - 除了换行符之外的任何0 +字符尽可能少到第一个...
  • (?=UAG|UAA|UGA) - UAGUAAUGA(不属于返回值,因为模式位于零宽度断言的正向前瞻内部)。