使用python匹配通配符扩展的字符串(如果不按子字符串处理)

2024-10-06 16:15:11 发布

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

我有一个由字母A、C、G或T和^字符组成的字符串,例如:

43立方厘米^TGC35TG^G45C

^将始终位于一个或多个字母序列的前面。在

我想得到所有不带^的连续字母序列。对于上面的例子,我想返回:

['CGT','TG','C']

对于re,我尝试过:

re.findall("(?<!\^)[ACGT]+", "43CGT^TGC35TG^G45C")

返回:

^{pr2}$

但这是不正确的,因为它还返回'GC'。我希望它将“^TGC”子字符串组合在一起,但它只是抛出T并保留GC。在

你知道怎么正确地做吗?在

谢谢!在


Tags: 字符串re字母序列tg字符gc例子
2条回答

这似乎有效:

>>> import re
>>> re.findall("(?<![\^ACGT])[ACGT]+", "43CGT^TGC35TG^G45C")
['CGT', 'TG', 'C']

我刚刚修改了negative look behind,以排除前面有字符A、C、G、T的匹配项

import re
re.findall("(?<=\d)[ATGC]+", "43CGT^TGC35TG^G45C")

结果

^{pr2}$

相关问题 更多 >