(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'
请您参考如下方法:
看起来你需要使用
AUG.*?(?=UAG|UAA|UGA)
详细信息:
AUG
- 匹配AUG
.*?
- 除了换行符之外的任何 0+ 个字符尽可能少,直到第一个...(?=UAG|UAA|UGA)
-UAG
或UAA
或UGA
(不是返回值的一部分,因为该模式位于零宽度断言的正先行内)。