Извлечь подстроку после слова в определенное слово в строке - PullRequest
0 голосов
/ 21 ноября 2019

У меня есть строка «некоторые слова Host: некоторые символы .net некоторые слова». Я хочу извлечь подстроку после Host: till .net, например, несколько символов.net будет выводом

Спасибо, Ракеш

Ответы [ 2 ]

1 голос
/ 21 ноября 2019

Это один из вариантов:

SQL> with test (col) as
  2    (select 'some words Host: some characters.net some words'  from dual)
  3  select trim(substr(col,
  4                     instr(col, 'Host:') + 5,
  5                     instr(col, '.net') - instr(col, 'Host:'))
  6             ) result
  7  from test;

RESULT
-------------------
some characters.net

SQL>
0 голосов
/ 22 ноября 2019

Эй, не забудьте метод REGEXP_SUBSTR ()! Если совпадение не найдено, возвращается пустая строка.

with test (col) as
  (select 'some words Host: some characters.net some words'  from dual)
select regexp_substr(col, 'Host: (.*\.net)', 1, 1, NULL, 1) result
from test;

Если вы хотите, чтобы исходная строка возвращалась, если совпадения нет, используйте функцию REGEXP_REPLACE ():

with test (col) as
      (select 'some words Host: some characters.net some words'  from dual)
    select regexp_replace(col, '.*Host: (.*\.net).*', '\1') result
    from test;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...