Я работаю над анализом полей адреса с помощью регулярных выражений.Как включить определенные шаблоны?
Случай 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}[,]?)
Но результат не соответствует ожидаемому.
Как правильно проанализировать шаблоны?