我有以下一连串的氨基酸:
s = 'SHVANSGYMGMTPRLGLESLLE*A*MIRVAS'
其中*
表示终止密码子。你知道吗
我想提取满足以下条件的所有肽(氨基酸链,即子链):
M
*
结束如果我在Python中对特定字符串使用正则表达式M.*?\*
,它将返回一个肽:
MGMTPRLGLESLLE*
这只是部分正确,因为它忽略了另一种可能的解决方案:
MTPRLGLESLLE*
换句话说,我需要一个返回两个肽的正则表达式:
MGMTPRLGLESLLE*
以及
MTPRLGLESLLE*
有什么想法吗?你知道吗
用这个。它使用正向前瞻来检查字符串。因为它是0宽度断言,所以它可以匹配所有字符串。你知道吗
你可以像这样使用它:
请参见演示http://regex101.com/r/jT3pG3/5。你知道吗
包're'似乎不支持重叠匹配(这就是为什么
findall
或finditer
找不到您想要的两个匹配)。你知道吗然而,有一个名为regex的新Python包似乎解决了这个问题:https://pypi.python.org/pypi/regex。您可以使用以下两个命令之一进行安装:
导入包regex而不是re,以下脚本执行您所需的操作:
相关问题 更多 >
编程相关推荐