雪花 SQL 正则表达式

Snowflake SQL Regex

我正在尝试使用 Snowflakes regexp_substr()

来识别嵌套在字符串中的值

我要访问的值在引号中:

...
Type:
value: "CategoryA"
...

编辑:此文本嵌套在更大部分的文本中。

我想使用 regexp_substr 为所有列提取类别 A。但我不确定如何。 我试过:

regexp_substr(col, 'Type\W+(\w+)\W+\w.+')

虽然这给出了字符串的一部分,但我只想要引号中的内容,但不知道该怎么做。

您可以改用 regexp_replace():

regexp_replace(col, '(^[^"]*")|("[^"]*$)", '')

正则表达式匹配以下两个条件,并将匹配部分替换为空字符串:

  • ^[^"]*":从字符串开头到第一个双引号的所有内容

  • ("[^"]*$)":从最后一个双引号到字符串结尾的所有内容