如何在 SQL Redshift 中进行正则表达式

Posted

技术标签:

【中文标题】如何在 SQL Redshift 中进行正则表达式【英文标题】:how to regex in SQL Redshift 【发布时间】:2020-10-13 10:38:29 【问题描述】:

我有以下网址:

pro.somecompany.com/#/aquisitionintelligence/competitiveanalysis/overview/website-performance/hospital.org/*/484/3m?webSource=Desktop

我想要aquisitionintelligence 部分和competitiveanalysis 部分

另外,有时我有这样的链接/#/insights/reports?types=SC

如何只获得reports 部分?

知道如何在 SQL 中执行此操作吗?

【问题讨论】:

请编辑您的问题以提供更多示例输入,以及您所寻求的每个输入的输出。 【参考方案1】:

对于复杂分隔符的一般问题,您可以使用regexp_substr()

以第三部分为例:

select regexp_substr(col, '[^/?]+', 1, 3)

如果您只想使用单个分隔符的第三部分,请使用split_part()

select split_part(col, '/', 3)

【讨论】:

这很好用!你能解释一下特殊字符和结构吗?或向我推荐一个好的来源? @nimi1234 。 . .我参考了有关功能的文档。 “特殊字符”是分隔符。在第一种情况下,它们是返回值中不允许的字符。在第二种情况下,它只是分隔符。

以上是关于如何在 SQL Redshift 中进行正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

使用 SQL 的 Amazon Redshift 中的正则表达式

Redshift SQL 可以执行不区分大小写的正则表达式求值吗?

在 Redshift SQL 中从数组中提取值

redshift sql使用正则表达式从字符串中获取第一、第二、第三个值,如下所示

正则表达式在 Redshift 中将 CamelCase 转换为蛇形案例

在 redshift 中使用正则表达式和 casestatements 语句