Oracle 12c REGEXP_REPLACE для извлечения слова из строки - PullRequest
0 голосов
/ 09 мая 2019


Мне нужна помощь по регулярным выражениям
Допустим, у меня есть строка 1.2.P Permission Level - ${Permission_manager_approval}

У меня есть обычный запрос Expresion для разбора строки
SELECT REGEXP_REPLACE(:str,'(.+)\s[\$|(?:.\s\$)].*','\1')FROM DUAL; на '\1' я получаю ответ как 1.2.P Permission Level, но когда я пытаюсь '\2' Я получаю Null Ожидаемый результат этого запроса: 'Manager_approval'. Вам нужна помощь по этому вопросу

.

Спасибо

1 Ответ

0 голосов
/ 09 мая 2019

Я надеюсь, что вы пытаетесь извлечь подстроку из предоставленной строки.Вы можете использовать функцию REGEXP_SUBSTR для достижения того же.

SELECT REGEXP_SUBSTR (
             '1.2.P Permission Level - ${Permission_manager_approval}',
             'manager_([[:alnum:]]+\.?){3,4}/?') FROM DUAL;

o/p- manager_approval

Вы также можете получить o / p как Manager_approval с приведенным ниже

SELECT REGEXP_REPLACE (
          REGEXP_SUBSTR (
             '1.2.P Permission Level - ${Permission_manager_approval}',
             'manager_([[:alnum:]]+\.?){3,4}/?'),
          '^(\S*)',
          'Manager_approval')
  FROM DUAL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...