我正在 AWS Redshift 上进行 URL 提取。URL 列如下所示:
url item origin
http://B123//ajdsb apple US
http://BYHG//B123 banana UK
http://B325//BF89//BY85 candy CA
Run Code Online (Sandbox Code Playgroud)
我想要得到的结果是获取以 B 开头的系列,并且如果 URL 中有多个系列,还可以扩展行。
extracted item origin
B123 apple US
BYHG banana UK
B123 banana UK
B325 candy CA
BF89 candy CA
BY85 candy CA
Run Code Online (Sandbox Code Playgroud)
我当前的代码是:
select REGEXP_SUBSTR(url, '(B[0-9A-Z]{3})') as extracted, item, origin
from data
Run Code Online (Sandbox Code Playgroud)
正则表达式部分运行良好,但我在提取多个值并将它们扩展到新行时遇到问题。我尝试使用REGEXP_MATCHES(url, '(B[0-9A-Z]{3})', 'g'),但 Redshift 上不存在函数 regexp_matches...