Я пытаюсь разделить проверенные адреса на базовые компоненты (Unit #, Street #, Street Name и т. Д.). Для этого я работаю в обратном направлении (справа налево) через строку:Анализ нескольких регулярных выражений Производительность
- Match [A-Z'-] символов => Название улицы
- Match [\ d -] + [A-запорожец г] {0,1} => Street Number (это соответствует вещи, такие как 10-12 или 11В, будет только 0 или 1 письмо)
- матч остальные строки в номер блока
Теперь я могу написать три шаблона регулярных выражений, чтобы сделать это. Я не уверен, как их использовать. Это будет использоваться при пакетной обработке адресов.
Мои идеи:
- Выполнить каждый шаблон по адресу и сохранить каждый матч на соответствующий адрес объекта недвижимости
- какой-то матч/заменить, чтобы сократить строку после каждого шага (я собирался использовать внешний вид вперед и оглядываться назад)
Любые советы о том, как наиболее эффективное использование регулярных выражений было бы наиболее полезным.
EDIT Как я уже сказал, вместо этого я использовал группы для этого. В случае, если кто-то хочет, чтобы увидеть то, что я придумал:
(?<unit>(.*))\s(?<number>([\d-]+[A-Za-z]{0,1}))\s+(?<name>([\sA-Za-z'-]+$))
NB: Это для очень конкретного формата адресов, определенных на то, что мне нужно.
Возможно, вы найдете следующую информацию: [Стандарты рассылки Почтовой службы Соединенных Штатов Америки 28 - Стандарты почтовой адресации] (http://pe.usps.com/text/pub28/welcome.htm). Остин, штат Техас, имеет «E 49 1/2 St», и, согласно публикации, номер улицы также может быть дробным. –
Спасибо, но я не нахожусь в США, и у нас есть продукт проверки на уровне рынка, который удаляет адреса типа x/y при сохранении (хотя мы и используем их здесь при написании адреса). – hsimah