2024-10-01 09:29:56 发布
网友
我有一个子串'G^ATTC',我想找出它在像'ATCGCGATTC'这样的字符串中出现的次数,但因为'^',我不能。你知道吗
'G^ATTC'
'ATCGCGATTC'
'^'
我使用了re.findall,但结果总是0。你知道吗
re.findall
0
这是因为在正则表达式中,“^”字符表示“行的开始”。与此相关,“$”表示“行的结束”
所以,当它搜索“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
这是因为在正则表达式中,“^”字符表示“行的开始”。与此相关,“$”表示“行的结束”
所以,当它搜索“G^ATTC”时,它永远不会匹配任何东西,因为你说的是“G”在行首之前(这根本没有意义)。你知道吗
修复regex的方法是包含一个“\”来转义“^”。这告诉regex将“^”视为一个字符,而不是行首。你知道吗
所以,把它改成“G\^ATTC”
可能是这样的:
输出:
相关问题 更多 >
编程相关推荐