タイプミスをキャプチャするための簡単な関数を作成しようとしています。例:
"Westminister15"
"Westminister15London"
"23Westminister15London"
固定後:
["Westminister", "15"]
["Westminister", "15", "London"]
["23", "Westminister", "15", "London"]
最初の試み:
def fixate(query):
digit_pattern = re.compile(r'\D')
alpha_pattern = re.compile(r'\d')
digits = filter(None, digit_pattern.split(query))
alphas = filter(None, alpha_pattern.split(query))
print digits
print alphas
結果:
fixate("Westminister15London")
> ['15']
> ['Westminister', 'London']
ただし、これはより効果的に実行できると思います。次のようなことを試してみると、それでも悪い結果が得られます。
fixate("Westminister15London England")
> ['15']
> ['Westminister', 'London England']
明らかに、それは個別London
に参加する必要がありEngland
ますが、私の関数は過度にパッチが適用され、より単純なアプローチがあると感じています
この質問は、このphpの質問と多少同等です。