0

我有一个很长的字符串(例如 AAAABBBBCCCC),我最终想找到不同子字符串列表中每个成员的所有重叠项(例如 ['AAA'、'AAB'、'ABB'、'BBB'])。

我在以前的 StackOverflow 帖子中发现了一个非常有用的建议 - 重复出现的字符串计数但是,使用它我似乎无法以 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

我将不胜感激任何建议!谢谢!

4

2 回答 2

2

如果我理解正确,您想分配一个变量并在findall函数中使用它?

>>> substring = '(?=AAA)' #or "(?=AAA)"
>>> len(re.findall(substring, string))
>>> 2
于 2013-11-06T17:19:21.083 回答
0

看看这是否对您有所帮助,您的第 5 行是字符串子字符串而不是变量子字符串。

import re
string = 'AAAABBBBCCCC'
len(re.findall('(?=AAA)', string))
2
substring = 'AAA'
len(re.findall('(?=' + substring + ')', string))
2
于 2013-11-06T17:23:32.080 回答