我有一个子字符串'G^ATTC'
,我想查找它在类似'ATCGCGATTC'
的字符串中出现的时间,但是由于'^'
而无法。
我使用了re.findall
,但结果始终是0
。
答案 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