0
import re
print(len(re.findall('ANA', 'BANANA')))
これは1を出力しますが、文字を使用して一致をカウントするので、出力は2になります。これはre findallを使用して行うことができますか?Pythonはfindall複数の同じ文字を許可します
import re
print(len(re.findall('ANA', 'BANANA')))
これは1を出力しますが、文字を使用して一致をカウントするので、出力は2になります。これはre findallを使用して行うことができますか?Pythonはfindall複数の同じ文字を許可します
現在のところ標準のre
モジュールでは、これを行うことはできません。 regex
モジュール上の情報はここで見つけることができます
import regex
print(len(regex.findall('ANA', 'BANANA', overlapped=True)))
:https://pypi.python.org/pypi/regex
は、あなたはおそらくそれをインストールする必要があります他のスレッドで指摘したようにしかし、あなたはoverlapped
フラグを提供しています新しいregex
モジュールを使用することができます:上述
pip install regex
他のスレッド:How to find overlapping matches with a regexp? とPython regex find all overlapping matches?
いいえ、アンカーポイントを繰り返し変更するコードを記述する必要があります。あなたが望むのは重なり合うマッチですが、 're'モジュールのメソッドはオーバーラップしないマッチだけを見つけます。 –