2013-08-27 5 views
0

Я пытаюсь разделить проверенные адреса на базовые компоненты (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: Это для очень конкретного формата адресов, определенных на то, что мне нужно.

+1

Возможно, вы найдете следующую информацию: [Стандарты рассылки Почтовой службы Соединенных Штатов Америки 28 - Стандарты почтовой адресации] (http://pe.usps.com/text/pub28/welcome.htm). Остин, штат Техас, имеет «E 49 1/2 St», и, согласно публикации, номер улицы также может быть дробным. –

+0

Спасибо, но я не нахожусь в США, и у нас есть продукт проверки на уровне рынка, который удаляет адреса типа x/y при сохранении (хотя мы и используем их здесь при написании адреса). – hsimah

ответ

2

Регулярные выражения способны согласовывать всю строку; просто заключите части в скобках, чтобы сформировать захватив группы, например .:

^(\w*)\s*([\d-]+[A-Za-z]?)\s*(.+)$ 

Затем рассмотрим Match.Groups коллекцию для частей вам нужно.

+0

О, мужик, я мог бы ударить себя. Я полностью забыл о группах. Я быстро переписал свои три шаблона в один, используя названные группы. Отлично! – hsimah

Смежные вопросы