Код:
# -*- coding: windows-1251 -*-
import re
str = "Ипотека Тольятти. Автовазбанк."
regex = re.compile("Ипотека\s+(?P<city>[-А-яё\s]+)\.\s+(?P<bank>[-А-яё\s]+)\.", re.I)
match = regex.search(str)
print "Один элемент:", match.group("city")
print "Несколько элементов:", match.group("city", "bank")
print "Все элементы:", match.groups()
Один элемент: Тольятти
Несколько элементов: ('\xd2\xee\xeb\xfc\xff\xf2\xf2\xe8', '\xc0\xe2\xf2\xee\xe2\xe0\xe7\xe1\xe0\xed\xea')
Все элементы: ('\xd2\xee\xeb\xfc\xff\xf2\xf2\xe8', '\xc0\xe2\xf2\xee\xe2\xe0\xe7\xe1\xe0\xed\xea')
2. “\w+” - эквивалентен +, но не +. Использовал сначала + для поиска русских слов, но почему то не включается в интервал символ “ё” … пришлось дописать до +.
Сторонние модули пожалуйста не предлагайте. Хочется понять механизм преобразований, откуда взялся юникод, и почему не работают списки русских символов и “\w+”.