我想在regexp_substr
表达式中使用正向后缀。
我有以下内容:
regexp_substr(My_Data, '(?<=id:).*(?=;)', 1, 1)
这给了我以下错误:
无效的正则表达式:'(?<= id:)。*(?=;)',重复运算符无参数:?
我正在尝试将键值对拆分为
id:1234;
答案 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。