雪花是否支持正则表达式中的正向后视?

时间:2019-01-11 17:34:33

标签: snowflake-datawarehouse

我想在regexp_substr表达式中使用正向后缀。

我有以下内容:

regexp_substr(My_Data, '(?<=id:).*(?=;)', 1, 1)

这给了我以下错误:

  

无效的正则表达式:'(?<= id:)。*(?=;)',重复运算符无参数:?

我正在尝试将键值对拆分为

  

id:1234;

1 个答案:

答案 0 :(得分:1)

Snowflake的正则表达式不支持Look-behind。

但是,您可以使用常规的正则表达式组来实现以下目的:

select regexp_substr('Something,id=12345;Somethng', 'id=([^;]+);',1, 1, 'e');
-----------------------------------------------------------------------+
 REGEXP_SUBSTR('SOMETHING,ID=12345;SOMETHNG', 'ID=([^;]+);',1, 1, 'E') |
-----------------------------------------------------------------------+
 12345                                                                 |
-----------------------------------------------------------------------+

请注意要提取的'e'参数,请参见the documentation