Я пытаюсь выработать простую функцию для захвата опечаток, например:
"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 question