用于提取两个单词之间字符串的正则表达式

2024-09-28 05:19:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一根没有空间的绳子。在

ATG AGC TAA CTC AGG TGA TGG GGA ATG CCC CGC TAA

我需要提取ATG和以TAG|TGA|TAA结尾的字符串 (不应包括结尾) . 如何从字符串中提取

ATGAGCATGCCCCGCTAA使用正则表达式。在

我试过的

^{pr2}$

它没有按预期工作。在


Tags: 字符串tag结尾空间aggcccatg绳子
3条回答

使用以下正则表达式:

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}

*?:表示最小匹配。否则,将获得最长匹配。在

import re

pattern = re.compile(r'(ATG[A-Z]+)(?:TAG|TGA|TAA)')
results = pattern.search('ATGCCCCGCTAA')

print results.groups(0)

结果

^{pr2}$

相关问题 更多 >

    热门问题