URL регулярное выражение oracle - PullRequest
0 голосов
/ 03 февраля 2020

Я хочу сделать что-то вроде этого:

Это ссылка, которую я хочу заменить. Поэтому я хочу оставить только часть «textIwantToKeep»: http://mylink/aaa-bbb/textIwantToKeep

И я хочу это: http://mySecondLink/ccc-ddd/textIwantToKeep

Я хочу используйте регулярное выражение с Oracle SQL Developper. Я думаю о том, чтобы посчитать число sla sh (4) и разделить только часть до 4-го sla sh, но это не работает ..

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Могут быть и другие альтернативы, но вот что-то, что пришло ко мне быстро -

WITH main_table AS (
    SELECT 'http://mylink/aaa-bbb/textIwantToKeep' AS original_string FROM dual
    )
    , 
    second_table AS (
    SELECT 'http://mySecondLink/ccc-ddd/' AS my_second_link FROM dual
    )
SELECT
    second_table.my_second_link
    || regexp_substr(main_table.original_string, '[^/]+', 1, 4) AS final_string
FROM
    main_table,
    second_table;

Дайте мне знать, если это работает.

0 голосов
/ 03 февраля 2020

REGEXP_SUBSTR может быть одним из вариантов; \w+$ возвращает последнее слово (т. Е. Одно "привязанное" к концу строки):

SQL> with test (link) as
  2    (select 'http://mylink/aaa-bbb/textIwantToKeep'       from dual union all
  3     select 'http://mySecondLink/ccc-ddd/textIwantToKeep' from dual
  4    )
  5  select link,
  6         regexp_substr(link, '\w+$') result
  7  from test;

LINK                                        RESULT
------------------------------------------- --------------------
http://mylink/aaa-bbb/textIwantToKeep       textIwantToKeep
http://mySecondLink/ccc-ddd/textIwantToKeep textIwantToKeep

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...