如何在python中找到字符串中子字符串的出现次数?

2024-10-01 09:29:56 发布

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

我有一个子串'G^ATTC',我想找出它在像'ATCGCGATTC'这样的字符串中出现的次数,但因为'^',我不能。你知道吗

我使用了re.findall,但结果总是0。你知道吗


Tags: 字符串re次数子串findallattcatcgcgattc
2条回答

这是因为在正则表达式中,“^”字符表示“行的开始”。与此相关,“$”表示“行的结束”

所以,当它搜索“G^ATTC”时,它永远不会匹配任何东西,因为你说的是“G”在行首之前(这根本没有意义)。你知道吗

修复regex的方法是包含一个“\”来转义“^”。这告诉regex将“^”视为一个字符,而不是行首。你知道吗

所以,把它改成“G\^ATTC”

可能是这样的:

import re

txt = "ATCGCG1ATTCAAAAAAAAAAAAAG4ATTC"
substring =  'G^ATTC'
x = re.findall(substring.replace('^','.'), txt) # ['G1ATTC', 'G4ATTC']
print ("pattern {} occurs {} times".format(substring,len(x)))

输出:

pattern G^ATTC occurs 2 times

相关问题 更多 >