Мне нужно найти адреса в дампе данных.Я знаю адресные существа типа «Адрес:» и оканчивается 4-значным почтовым индексом - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь найти все адреса в базе данных. Адреса начинаются как «Адрес» и заканчиваются почтовыми кодами из 4 цифр.

Может ли это быть достигнуто с помощью регулярных выражений?

https://www.w3schools.com/python/python_regex.asp

Я пробовал несколько методов по ссылке выше.

possible_addresses = list(re.findall("^Address:[0-9]{4}", data))

Адрес: 10 LEWIS ST, BERRI SA 5343

Ответы [ 3 ]

1 голос
/ 03 июня 2019

Предполагая, что адреса занимают всю строку, мы можем попробовать использовать следующий шаблон регулярных выражений:

Address: (.* \d{4})

Сценарий:

address = "10 LEWIS ST, BERRI SA 5343"
possible_addresses = re.findall(r'Address: (.* \d{4})', address)
print(possible_addresses)

Если адрес может занимать более одной строки или может совместно использовать данную строку с текстом, отличным от адреса, используйте вместо этого следующий шаблон:

\bAddress: (.*? \d{4})\b
0 голосов
/ 04 июня 2019

Я обнаружил, что приведенный ниже код работает идеально, как мне нужно.

0 голосов
/ 03 июня 2019

Почему бы вам не попробовать это и не прокомментировать, если какой-либо крайний случай остался.Я проверил код ниже, и он решает вашу проблему.Надеюсь, это поможет.

import re

statement = 'Address: house number 43, 56th street, 1234'

print(re.findall("^Address:[A-Za-z0-9, ]*[0-9][0-9][0-9][0-9]", statement))
#['Address: house number 43, 56th street, 1234']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...