Как проверить, является ли слово частью строки, начинающейся с www, всегда используя regex? - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть текстовое значение, в котором URL-адрес является частью каждого текста.Как мне определить, является ли слово техническое частью ссылки?

create table t as 
select 'Part of the technical Network Group www.technical.com/sites/' as text from dual
union select 'Technical Network Group' as text from dual;

select * from t
where regexp_like(text,'technical','i')

Я получаю оба текста.Мне нужен только первый текст.Ссылка может отличаться, это может быть и www.tech.technical.

Ответы [ 2 ]

1 голос
/ 27 сентября 2019

Вы можете использовать

WHERE REGEXP_LIKE(text,'www\.\S*technical','i')

Или, если вы также хотите учесть, что URL может начинаться с http или https,

WHERE REGEXP_LIKE(text,'(https?://|www\.)\S*technical','i') 

Подробности

  • www\. - подстрока www.
  • \S* - 0+ символов, кроме пробелов
  • technical - a technicalподстрока.

См. онлайн-демонстрацию :

with testdata(text) as (
      select 'Part of the technical Network Group www.technical.com/sites/'  from dual
      union
      select 'Part of the technical Network Group www.some.com/sites/technical'  from dual
      union
      select 'Technical Network Group' from dual
   )
select * from testdata where regexp_like(text,'www\.\S*technical','i') 

Выход:

enter image description here

См. еще одну демонстрацию с поддержкой http / https.

0 голосов
/ 27 сентября 2019

Вы можете использовать что-то, что @Wiktor предложил в комментарии

select * from t
where regexp_like(text,'www\..*technical','i')

Вот пример в SQLFiddle .Но вам будет намного лучше изучать Regex, потому что URL-адреса, которые вы можете найти, могут быть совершенно разными.

...