python 正则匹配 有重叠区时只能匹配到第一个 如何能将所有符合条件的都匹配到,示例如下
a='GGGTCCC'
re.findall('GG.{2}CC',a)
['GGGTCC']如何才能将两个符合条件的(即['GGGTCC']和['GGTCCC'])都匹配到
import regex
a='GGGTCCC'
regex.findall('GG.{2}CC',a,overlapped=True)
实现重叠匹配输出结果:['GGGTCC', 'GGTCCC']
import re
c = 'GGGTCCC'
rule = re.compile('G(.*)')
result = re.findall(rule, c)
print(result)
rule2 = re.compile('(.*)C')
result2 = re.findall(rule2, c)
print(result2)
这样可以匹配到你要的结果,findall还是只会对字符串匹配一次,只是从头到尾相同的都匹配到。不会匹配两次。