【发布时间】:2013-09-11 02:54:19
【问题描述】:
我正在使用以下正则表达式:
orfre = '^(?:...)*?((ATG)(...){%d,}?(?=(TAG|TAA|TGA)))' % (aa)
我基本上想找到所有以 ATG 开头的序列,然后是三联体(例如 TTA、TTC、GTC 等),直到它在框架中找到一个终止密码子。但是,正如我的正则表达式所写的那样,如果 aa 很大,它实际上不会停在终止密码子处。相反,它将继续搜索,直到找到满足 aa 条件的一个。我宁愿让它搜索整个字符串,直到找到终止密码子。如果匹配不够长(对于给定的 aa 参数),那么它应该返回 None。
字符串数据: AAAATGATGCATTAACCCTAATAA
正则表达式的期望输出: ATGATGCATTAA
除非 aa > 5,在这种情况下不应返回任何内容。
我得到的实际输出:ATGATGCATTAACCCTAA
【问题讨论】:
-
在此处提供您的字符串数据。
-
@hwnd,好的,我编辑了 q。
-
尝试以下
(ATG)([ACGT]{3})*?(TAG|TAA|TGA)或(ATG)((?!TAG|TAA|TGA)[ACGT]{3})+(TAG|TAA|TGA)之一 -
@hwnd 可以工作,除了正则表达式包含在指定最小氨基酸数量的函数中
-
前几天有人问过这个问题,但是被删了。这个会怎么样?
标签: python regex bioinformatics