Как можно по слову в строке найти значение?
Есть строка формата: 'Стр. 23 упр. 4' А есть формата: 'Упражнение 12 страница 2' Нужно чтобы программа возвращала распознанные данные опираясь на слова стр и упр, а также и их полную форму. При этом порядок упражнение-страница не должен играть роли.
import difflib
hometask = 'упр. 122, стр. 10'
# hometask = 'страница 122 упражнение 10'
def finder(hometask):
lst = hometask.replace('.', '').replace(',', '').split()
try:
test2 = difflib.get_close_matches('страница', lst)
test = lst.index(test2[0])
page = lst[test + 1]
num = lst[lst.index(difflib.get_close_matches('упражнение', lst)[0]) + 1]
except ValueError:
return -1
else:
return page, num
if __name__ == '__main__':
print(finder(hometask))
Я попытался использовать difflib, но это не сработало Также я пытался использовать pymorphy2, но он не смог(и не должен был наверное) найти полную форму слова стр
import pymorphy2
morph = pymorphy2.MorphAnalyzer()
print(morph.parse('стр'))