Извлечь российские города из названий файлов
Есть список из названий файлов
files = ['Downloads/report_2023-02-19_Москва.xlsx',
'Downloads/report_2023-02-19_Нижний Новгород.xlsx',
'Downloads/report_2023-02-19_Пермь.xlsx',
'Downloads/report_2023-02-19_Новосибирск.xlsx']
При попытке извлечь российские города, у меня следующий результат:
import re
for b in files:
for n in re.findall(r'(?<=_)[а-яА-Я]\w+', b):
print (n)
Результат:
Москва
Нижний
Пермь
Новосибирск
Нужен следующий результат:
Москва
Нижний Новгород
Пермь
Новосибирск
Ответы (2 шт):
Автор решения: gil9red
→ Ссылка
Поменял регулярку, включив в поиск пробелы. Поменял метод поиска на re.search:
import re
for b in files:
m = re.search(r'(?<=_)[а-яА-Я ]+', b)
print(m.group())
Результат
Москва
Нижний Новгород
Пермь
Новосибирск
Автор решения: Дмитрий
→ Ссылка
ИМХО там еще может быть Комсомольск-на-Амуре. И после названия города идет "." и расширение, т.е. что-то такое:
r'([А-Яа-я]+[- А-Яа-я]+?)\.'