Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_substr / 3 сообщений из 3, страница 1 из 1
01.11.2017, 13:00
    #39545935
dimyaz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_substr
Есть строки со значениями в [][] и возможным различным мусором между ними.

Как вытащить в двух столбцах первое и второе значения каждой скобки?

У меня получилось вот так, но если будут символы между скобками, то уже не сработает запрос

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with t1 as (
     select '[v1][p1]' txt from dual union all
     select '[v2][p2]' txt from dual 
)
select
  regexp_substr(txt,'(\[)([^]]+)',1,1,'i',2) v,
  regexp_substr(txt,'(\]\[)([^]]+)',1,1,'i',2) p
 , txt
from t1



1v1p1[v1][p1]2v2p2[v2][p2]
...
Рейтинг: 0 / 0
01.11.2017, 13:23
    #39545955
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_substr
dimyazто уже не сработаетHint: тебе нужно второе вхождение, а не другое выражение.
...
Рейтинг: 0 / 0
01.11.2017, 13:52
    #39545976
dimyaz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
regexp_substr
Elic, да спасибо
такая конструкция понадежнее выглядит

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with t1 as (
     select '[v1][p1]' txt from dual union all
     select '[v2][p2]' txt from dual 
)
select
  regexp_substr(txt,'(\[)([^]]+)',1,1,'i',2) v,
  regexp_substr(txt,'(\[)([^]]+)',1,2,'i',2) p,
  txt
from t1
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / regexp_substr / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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