Я пытаюсь разбить строку, используя строку в качестве разделителя, в процедуре хранения Oracle. Я могу легко использовать instr
, но я пытаюсь научиться делать это с помощью регулярных выражений, так как я понимаю, что это мощно и эффективно.
Прочитав некоторые статьи, я подумал, что смогу сделать это (ожидаемый результат был "Hello
"):
select regexp_substr('Hello My Delimiter World', '( My Delimiter )+', 1, 1)
from dual
Результат:
Мой разделитель
и (ожидаемый результат был "World
"):
select regexp_substr('Hello My Delimiter World', '( My Delimiter )+', 1, 2)
from dual
Результат:
нулевой
Каков правильный regex_substr для этого требования?
РЕДАКТИРОВАТЬ: я ищу что-то вроде ниже. За один проход он выбирает подстроку в строке:
Например. выберите regexp_substr('Hello World', '[^ ]+', 1, 2) from dual
Но этот образец работает только с одним символом.