【发布时间】:2017-03-06 15:02:02
【问题描述】:
我有一个由 4 个部分组成的字符串变量,看起来像这样:
social_CA_FR_bloom_build
或者这个:
social_DE_bloom_trgj4_67
(以及这个的不同变体)。
如何在 BigQuery 中编写正则表达式来提取子集,以便构建包含第一部分(社交)、第二部分 (CA_FR or DE etc)、第三部分(bloom)和第四部分(trgj4_67 or build, etc)的新列?
我已经试过了:
regexp_extract(field, "([^_]+)_([A-Z]{2}[_A-Z]*)_([^_]+)_(.+)", 1)
在 SQL (hive) 中有效,但在 BQ 中无效,因为它无法识别 (string, string, integer)。
我正在考虑用连字符替换 CA_FR 之间的下划线(应该放在一起并且只出现在几行中,通常只有两个大写字母),然后在字符串上使用 SPLIT 而不是 regex_extract,但我'不知道该怎么做/如果这是解决方案。
任何帮助将不胜感激!
【问题讨论】:
标签: sql regex google-bigquery