2024-09-28 05:19:19 发布
网友
我有一根没有空间的绳子。在
ATG AGC TAA CTC AGG TGA TGG GGA ATG CCC CGC TAA
我需要提取ATG和以TAG|TGA|TAA结尾的字符串 (不应包括结尾) . 如何从字符串中提取
ATG
TAG|TGA|TAA
ATGAGC和 ATGCCCCGCTAA使用正则表达式。在
ATGAGC
ATGCCCCGCTAA
我试过的
它没有按预期工作。在
使用以下正则表达式:
In [14]: regex = re.compile(r'(ATG.*?)(?:TAG|TGA|TAA)') In [15]: regex.findall(s) Out[15]: ['ATGAGC', 'ATGGGGAATGCCCCGC']
请注意,这些匹配项不包含尾部。在
考虑到结尾不包括在内,这是可行的:
>>> re.findall(r'(ATG(?:...)*?)(?:TAG|TGA|TAA)', seq) ['ATGAGC', 'ATGCCCCGC']
?:表示结果中不会捕获模式。在
?:
...:精确指定三个字符。另一种选择是.{3}或限制性更强的[ACTG]{3}
...
.{3}
[ACTG]{3}
*?:表示最小匹配。否则,将获得最长匹配。在
*?
import re pattern = re.compile(r'(ATG[A-Z]+)(?:TAG|TGA|TAA)') results = pattern.search('ATGCCCCGCTAA') print results.groups(0)
结果
使用以下正则表达式:
请注意,这些匹配项不包含尾部。在
考虑到结尾不包括在内,这是可行的:
?:
表示结果中不会捕获模式。在...
:精确指定三个字符。另一种选择是.{3}
或限制性更强的[ACTG]{3}
*?
:表示最小匹配。否则,将获得最长匹配。在结果
^{pr2}$相关问题 更多 >
编程相关推荐