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
;
如果您的 URL 中总是有该方案,您可以使用简单的
strtok(PAGREF_URL, '/',2)
我的代码当前条带: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
;
如果您的 URL 中总是有该方案,您可以使用简单的
strtok(PAGREF_URL, '/',2)