gpt4 book ai didi

snowflake-cloud-data-platform - 如何在雪花中只返回一个正则表达式匹配组?

转载 作者:行者123 更新时间:2023-12-02 20:03:24 27 4
gpt4 key购买 nike

我有一个包含多个匹配组的正则表达式。

我如何在 snowflake 中指定要返回的匹配组?

我正在使用 REGEXP_SUBSTR 但很乐意使用更好的替代方案。

最佳答案

TL;DR:不能完全那样做,但您可以使用 'e' 选项并使用非捕获组 ( ?:re)

所以澄清一下,Neil 似乎在要求一些可以返回 word for

的东西
select regexp_substr('bird is the word','(bird) (is) (the) (word)',1,4)

不幸的是,我不认为 Snowflake 今天完全支持这个功能。 REGEXP_SUBSTR 有一个'e'(提取)参数,它允许您只提取一个组,但它总是提取第一个 组.原因是今天的 occurrence 参数意味着整个正则表达式在字符串中的出现。示例

select regexp_substr('bird is cows are','([a-z]*) (is|are)',1,2,'e');
=> cows

你可以通过在你想要的之前不对组使用分组来实现你想要的,例如

select regexp_substr('bird is the word','bird (is) (the) (word)',1,1,'e');
-> is
select regexp_substr('bird is the word','bird is the (word)',1,1,'e');
-> word

但是,如果您想使用分组来表达替代方案,那将不起作用,例如

select regexp_substr('cow is the word','(bird|cow) is the (word)',1,1,'e');
-> cow

不过,我认为提供提取特定组号的选项是有值(value)的,将通过 Snowflake 开发提高它 :)

关于snowflake-cloud-data-platform - 如何在雪花中只返回一个正则表达式匹配组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55259349/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com