我有一个长字符串(例如AAAABBBBCCCC),我最终想要找到不同子串列表中每个成员的所有重叠事件(例如['AAA','AAB','ABB','BBB'])
我在之前的StackOverflow帖子上找到了一个非常有用的建议 - string count with overlapping occurrences但是,使用这个我似乎无法以re.findall()可以识别它们的方式分配子字符串。这可能是一些愚蠢的事情,但我似乎无法弄明白。似乎?
正在做一些与平常不同的事情......
>>> string = 'AAAABBBBCCCC'
>>> len(re.findall('(?=AAA)', string))
2
>>> substring = 'AAA'
>>> len(re.findall('(?=substring)', string))
0
>>> substring = "'(?=AAA)'"
>>> len(re.findall(substring, string))
0
>>> #This works, but is not overlapping:
>>> substring = 'AAA'
>>> len(re.findall(substring, string))
1
我将不胜感激任何建议!谢谢!
答案 0 :(得分:2)
如果我理解正确,你想要分配一个变量并在findall
函数中使用它吗?
>>> substring = '(?=AAA)' #or "(?=AAA)"
>>> len(re.findall(substring, string))
>>> 2
答案 1 :(得分:0)
看看这对你的其余部分是否有帮助,你的第5行是字符串子字符串而不是变量子字符串。
import re
string = 'AAAABBBBCCCC'
len(re.findall('(?=AAA)', string))
2
substring = 'AAA'
len(re.findall('(?=' + substring + ')', string))
2