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 に答える