Я извлекаю почтовые индексы из списка строк, используя REGEXP_REPLACE в Oracle. Когда я проверяю регулярное выражение в строке, почтовый индекс извлекается правильно. Однако, когда я перемещаю регулярное выражение в производство на VIEW в Oracle, я получаю другие результаты от регулярного выражения на той же самой строке.
Следующая строка появляется дважды в моем ПРОСМОТРЕ:
;2;5;1;1;Company Name;1;Location;1;12 Street;1;City, US-IL 13012;1;US;
Я использую следующее утверждение в VIEW для захвата почтового индекса
REGEXP_REPLACE (tb."ADDRESS", '.*([A-Z]{2}[0-9]?-[A-Z0-9]* ?|, ?)([^;]{0,10}|);[0-9];[A-Z]{2};', '\2 ')
- При первом появлении строки регулярное выражение извлекает "US-IL"
- При первом появлении строки регулярное выражение извлекает "13012"
Есть идеи, почему я получаю разные результаты от одного и того же регулярного выражения? Я пытался отладить его, переписать регулярное выражение, но я в тупике. Я ожидаю, что регулярное выражение возвратит «13012» для обоих вхождений этой строки.
N.B. Регулярное выражение должно быть достаточно гибким, чтобы собирать почтовые индексы и почтовые индексы для многих разных стран, мой набор данных предназначен не только для адресов США.