(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'
答案 0 :(得分:2)
看起来你需要使用
AUG.*?(?=UAG|UAA|UGA)
<强>详情:
AUG
- 匹配AUG
.*?
- 除了换行符之外的任何0 +字符尽可能少到第一个... (?=UAG|UAA|UGA)
- UAG
或UAA
或UGA
(不属于返回值,因为模式位于零宽度断言的正向前瞻内部)。