teradata sql 匹配正则表达式

teradata sql match regular expression

我的代码当前条带:https://www.website.com/events

但我想删除所有内容直到 /events,所以它会是

https://www.website.com

我觉得我很接近,但我错过了什么?

这是在 Teradata 中 SQL。

select 'https://www.website.com/events/143403?sid=1090794&mid=35' as string_to_search
,REGEXP_SUBSTR(string_to_search, '^.*(?=(/))',1,1,'i') as extract_domain

从字符串 ^ 的开头开始,将所有内容 .* 到第一个 ? 那里有

  • 后面没有斜线 (?<!/)
  • 前面一个斜杠(?=/)
  • 但前面没有 2 个斜线 (?!//)

select  'https://www.website.com/events/143403?sid=1090794&mid=35'  as string_to_search
        ,regexp_substr(string_to_search, '^.*?(?<!/)(?=/)(?!//)')   as extract_domain
;

https://www.website.com

如果您的 URL 中总是有该方案,您可以使用简单的

strtok(PAGREF_URL, '/',2)