Регулярные выражения regexp
с помощью re.search мне нужно вытащить из addresses все номера дома и квартир, и названия улиц и городов, я уже пол дня не понимаю как это сделать, смог вытащить только названия городов (и то не правильно) ИЛИ номера пример кода
import re
addresses = [
('Он проживал в городе Иваново на улице Наумова. '
'Номер дома 125 был зеркальной копией его номера квартиры 521'),
'Адрес: город Новосибирск, улица Фрунзе, дом 321, квартира 15.'
]
for address in addresses:
# pattern = r'/d+'
pattern = r'(Н.?[ув](\w+))'
address_match = re.search(pattern, address)
print(address_match)
Ответы (1 шт):
Автор решения: Леонид
→ Ссылка
в итоге, решение такое:
import re
addresses = [
('Он проживал в городе Иваново на улице Наумова. '
'Номер дома 125 был зеркальной копией его номера квартиры 521'),
'Адрес: город Новосибирск, улица Фрунзе, дом 321, квартира 15.'
]
result = []
for address in addresses:
pattern = f'город.? (?P<town>\w+).*улиц.? (?P<street>\w+).*дом.? (?P<house>\d+).*квартир.? (?P<apartment>\d+)'
address_match = re.search(pattern, address)
result.append(address_match.groups())
for row in result:
print(*row)