gpt4 book ai didi

用于查找所有匹配项的 python 正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 08:57:37 25 4
gpt4 key购买 nike

我有一个序列

seq = 'CCGATGACCTCACAGCCGCCTCCTGCCTTGAGGAAAGGAACTGCAATTCC'

我尝试获取长度为 23bp 且以 NGG 结尾的序列,其中 N = A 或 C 或 T 或 G`

我使用 p = re.compile('([ACGT]{21}GG)') 当我说

for m in p.finditer(seq):
print m.group()

我只得到CACAGCCGCCCTCCTGCCTTGAGG

但显然 CCGCCTCCTGCCTTGAGGAAAGG 也匹配。为什么不报道?

最佳答案

将您的正则表达式放在前瞻断言中,以便进行重叠匹配。您的正则表达式无法匹配这两个字符串,因为一个匹配项包含另一个匹配项。默认情况下,正则表达式不会进行重叠匹配。您需要将模式放在环顾四周,以便捕获重叠的匹配项。

(?=([ACGT]{21}GG))

代码:

>>> seq = 'CCGATGACCTCACAGCCGCCTCCTGCCTTGAGGAAAGGAACTGCAATTCC'
>>> p = re.compile(r'(?=([ACGT]{21}GG))')
>>> for m in p.finditer(seq):
print m.group(1)


CACAGCCGCCTCCTGCCTTGAGG
CCGCCTCCTGCCTTGAGGAAAGG

查看 this 右侧的截图演示。

关于用于查找所有匹配项的 python 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28861671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com