fork download
  1. import re
  2. str_addr = '300114 г Тула, Тульская область, Ленинский р-он, п РАССВЕТ, 75, к.34, тульская обл, Краснодарский край, гагарина 38, республика Хакасия Москва, Санкт-Петербург'
  3. res = re.findall(r"\b([А-Яа-яёЁ][^\W\d_]*)\s+(?:[кК]рай|[оО]бл(?:асть)?)|\b[рР]есп(?:ублика)?\s+([А-Яа-яёЁ][^\W\d_]*)|([мМ]осква|[сС]анкт-Петербург)", str_addr)
  4. print(["".join(x) for x in res])
Success #stdin #stdout 0.04s 9788KB
stdin
Standard input is empty
stdout
['Тульская', 'тульская', 'Краснодарский', 'Хакасия', 'Москва', 'Санкт-Петербург']