RegEx для парсинга адресов в необходимом формате - PullRequest
0 голосов
/ 23 апреля 2019

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

Случай 1:

Address Format : (House_NMBR)(SPACE)(STREET)

Для анализа House_Number в поле AddressLine, которое начинается с номера.- / символы разрешены.В доме также допускаются отдельные буквы.

Ниже приведены некоторые приемлемые данные для номера дома:

Ожидаемые данные:

11

11-11

11-11-11

11 A

11A

11 / A

11 / A,

Я написал регулярное выражение ниже,

Шаблон регулярного выражения

(^[0-9]+[\s]?[A-Za-z]{0,1}[-]?[\/]?[0-9]?[\s]?[A-Za-z]{0,1}[-]?[\/]?[0-9]?[\s]?[A-Za-z]{0,1}[,]?)

Он анализирует 1-1-1 или 11-11, но не анализирует 111-111.

Случай 2:

Address Format : (HouseNmbrExtension)(space)(HouseNumber)

Есть список слов, которые могут прийти, например, ЭтажЧисла (1-й FL, 2-й FL) или Suite, Level и т. Д., За которыми следует номер.Номер шаблона после последнего пробела переходит в часть номера.

Ожидаемые данные:

УРОВЕНЬ 12 333 >> Уровень 12 (HouseNmbrExtension), 333 (HouseNumber)

SUITE32 33/44>> SUITE32 (HouseNmbrExtension), 33/44 (HouseNumber)

1-й ЭТАЖ 300 >> 1-й ЭТАЖ (HouseNmbrExtension), 300 (HouseNumber)

3-й ФЛ 900 >> 3-й FL (HouseNmbrExtension),900 (HouseNumber)

Блок 12 22A >> Блок 12 (HouseNmbrExtension), 22A (HouseNumber)

Шаблон регулярного выражения:

(Level ?.*|Suite [0-9]+?[-]?[0-9]??.*|Unit [0-9]+?[-]?[0-9]?|Tower ?.*|.* Floor?.*|FL ?.*|.*?)
\s
(^[0-9]+[\s]?[A-Za-z]{0,1}[-]?[\/]?[0-9]?[\s]?[A-Za-z]{0,1}[-]?[\/]?[0-9]?[\s]?[A-Za-z]{0,1}[,]?)

Но результат не соответствует ожидаемому.

Как правильно проанализировать шаблоны?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...