文字列内の特定のパターンのおおよその一致を作成できるスクリプトに取り組んでおり、これらのパターン (重複している可能性があります) が開始される位置のみを報告します。
これまでのところ、正確な一致の位置を報告できるスクリプトを取得しましたが、おおよその位置については成功していません。
import re
stn = 'KLHLHLHKPLHLHLPHHKLHKLPKPH'
pat = 'KLH'
matches = re.finditer(r'(?=(%s))' % re.escape(pat), stn)
finalmatch= [m.start() for m in matches]
pos = ' '.join(str(v) for v in finalmatch)
print pos
この場合の結果は 0 17 ですが、スクリプト レポートもほぼ一致する場合はどうでしょうか。つまり、最大許容誤差 (許容値またはしきい値) が (クエリ パターンの任意の位置で) 1 の場合、HLH、PLH、KLP、KPH の初期位置をどのように報告できますか?
私はすでに、Levenshtein や SequenceMatcher などの距離測定を含めようとしましたが、成功しませんでした。
よろしくお願いします。