请参阅以下示例中的一个短语
Start -> vendor-i (06/06/2017 09:07:18 PM) -> vendor-p (06/08/2017 04:44:47 PM) -> vendor-p (06/12/2017 11:32:33 AM) -> vendor-p (06/13/2017 04:49:47 PM)
从上述阶段开始,我需要将vendor-i作为新变量提取,然后将vendor-p作为另一个新变量
可能存在我只有一个供应商名称的情况。
我建立的代码是:
regexp_extract(GROUP_NAMES,r'([a-z\._]*)\.') as integrations,
regexp_extract(GROUP_NAMES,r([vendor_que]) as vendor_que
请建议我们如何实现这一点,因为供应商名称可以出现在任何地方,因此我们也无法定义长度。
答案 0 :(得分:2)
由于您需要所有名称,因此可以使用REGEXP_EXTRACT_ALL
来获取它们的数组。例如,
#standardSQL
SELECT REGEXP_EXTRACT_ALL(GROUP_NAMES, r'-> ([^ ]+)')
FROM (
SELECT 'Start -> vendor-i (06/06/2017 09:07:18 PM) -> vendor-p (06/08/2017 04:44:47 PM) -> vendor-p (06/12/2017 11:32:33 AM) -> vendor-p (06/13/2017 04:49:47 PM)' AS GROUP_NAMES
);
输出是数组["vendor-i", "vendor-p", "vendor-p", "vendor-p"]
。