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

时间:2019-10-28 18:17:45

标签: python regex

我有一个子字符串'G^ATTC',我想查找它在类似'ATCGCGATTC'的字符串中出现的时间,但是由于'^'而无法。

我使用了re.findall,但结果始终是0

2 个答案:

答案 0 :(得分:0)

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

因此,当它搜索“ G ^ ATTC”时,它将永远不会匹配任何内容,因为您是说“ G”出现在行首之前(甚至没有意义)。

修复正则表达式的方法是包括一个“ \”以转义“ ^”。这告诉正则表达式将“ ^”视为字符而不是行的开头。

因此,将其更改为“ G \ ^ ATTC”

答案 1 :(得分:0)

也许是这样的:

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