powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использование REGEXP
4 сообщений из 4, страница 1 из 1
Использование REGEXP
    #39783275
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите, пожалуйста, возможно ли и если возможно, то как можно решить следующую задачу в Oracle.
Есть поле адреса из 4 элементов (округ, метро, район, улица) типа ", ЮЗАО, м. Беляево, р-н Коньково , Профсоюзая улица". При этом порядок элементов может быть произвольный. Округ, метро и район можно четко определить по вхождению "АО", " м." и "р-н " соответственно. Например:
substr(regexp_substr(address, ', [^,]+АО'), 6) округ
substr(regexp_substr(address, ', м\. [^,]+'), 6) метро
substr(regexp_substr(address, ', р-н [^,]+'), 6) район

4-й элемент, который остается это улица (в названии может быть проспект, проезд и т.д.) и её нужно определить как элемент, который НЕ содержит в себе ни "АО", ни " м.", ни "р-н ". Как это возможно реализовать с помощью REGEXP? Спасибо.
...
Рейтинг: 0 / 0
Использование REGEXP
    #39783292
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RoomonОкруг можно четко определить по вхождению "АО"

Можно, но не так как у тебя ибо раньше или позже нарвешься на:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
SQL> select regexp_substr(', ZAOZERNAYA STREET',', [^,]+AO') from dual
  2  /

REGEX
-----
, ZAO

SQL> 



SY.
...
Рейтинг: 0 / 0
Использование REGEXP
    #39783321
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roomonпорядок элементов может быть произвольный.Дерьмо-данные без участия ЛПР можно превратить в данные только лишь с КПД, гарантировано меньшим 100%.
...
Рейтинг: 0 / 0
Использование REGEXP
    #39783337
Roomon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY, спасибо за замечание. Поправил:
Код: plsql
1.
select regexp_substr(', ZAOZERNAYA STREET','(^|,)[^,]+AO($|,)') from dual




Elic, про КПД <100% полностью согласен. Но пока мне нужно поработать с тем, что есть.
Как можно через REGEXP реализовать что-то вроде:
Код: plsql
1.
'(^|,)[(НЕ" м. ")И(НЕ" р-н ")И(НЕ([^,]+AO($|,))И(НЕ(,))]+($|,)'


?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Использование REGEXP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]