如何用Snowflake REGEX_SUBSTR()提取URL中固定字符串后的目标文本?
单行REGEX_SUBSTR()解决Snowflake URL文本提取问题
你可以用下面这一行REGEXP_SUBSTR()直接替代原来的CASE WHEN逻辑,覆盖所有三种URL场景:
REGEXP_SUBSTR(url, 'constant-string/([^/]+)', 1, 1, 'e', 1)
正则逻辑说明
constant-string/:精准匹配固定的标记字符串及其后面的斜杠([^/]+):定义捕获组,匹配一个或多个非斜杠字符——这个规则会自动在遇到下一个斜杠时停止匹配,如果URL到这里就结束(没有后续斜杠),则匹配到URL末尾- 最后一个参数
1指定提取第一个捕获组的内容,也就是目标的EXTRACT部分
场景验证
针对你列出的三种URL:
https://someDomain.com/constant-string/EXTRACT→ 提取结果:EXTRACThttps://someDomain.com/constant-string/EXTRACT/someOtherText→ 提取结果:EXTRACThttps://someDomain.com/constant-string/EXTRACT/someOtherText/someOtherText/…/someOtherText→ 提取结果:EXTRACT
完全满足需求,不需要复杂的分支判断。
内容的提问来源于stack exchange,提问作者Nikhil Katti
相关产品推荐
相关产品推荐

