Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_substr positive look behind / 2 сообщений из 2, страница 1 из 1
13.04.2021, 16:24
    #40062141
Дон Бассаэро
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_substr positive look behind
Приветствую,

строку вида

w4234|5656drg|5776g 34edf|sdfg6543|132sd 345g|dfgh6

нужно сначала разбить на сегменты с разделителем | и взять n-ый, полученное значение разбить на сегменты с разделителем пробел и взять первый

Регулярное выражение (?<=\||^)[^| ]+ дает то что нужно здесь , а оракл возвращает только первый сегмент подхватывая только условие начала строки

Код: plsql
1.
2.
3.
select regexp_substr('w4234|5656drg|5776g 34edf|sdfg6543|132sd 345g|dfgh6', '(?<=\||^)[^| ]+', 1, level) rslt
  from dual
connect by level <= 6


w4234
(null)
(null)
(null)
(null)
(null)

Что делаю не так?
...
Рейтинг: 0 / 0
13.04.2021, 19:52
    #40062197
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_substr positive look behind
Код: plsql
1.
, '(^|\|)([^| ]+)', 1, level, '', 2)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_substr positive look behind / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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