BigQuery REGEXP_EXTRACT返回null

时间:2016-02-09 15:10:09

标签: regex google-bigquery

来自google analytics export我试图从trafficSource.campaign字段中提取下一个查询的最后一个数字:

SELECT
 REGEXP_EXTRACT(trafficSource.campaign,r':(\d+$)') as campaign,
FROM
  [95677969.ga_sessions_20160109] AS results,
WHERE
  hits.type IN ('TRANSACTION','PAGE')

此查询在UI中运行良好,每行返回的数字与reg expresion匹配,但是当我在我的脚本中复制粘贴此查询时,将返回null值。

trafficSource.campaign值是这样的:

_dfa_107202:4637224:8531522

请有人帮帮我吗?

1 个答案:

答案 0 :(得分:3)

逃避是这里的问题。

当你给BigQuery这样的东西时:

SELECT COUNT(*) FROM [publicdata:samples.shakespeare] WHERE REGEXP_MATCH(word, r'^\w$')

这将在BigQuery UI中正常工作(结果是283)。但是如果你将相同的字符串复制到你最喜欢的编程语言中,它可能会尝试将\作为其转义字符之一进行读取,因此你必须双重逃避它 - 或者想出另一种方法来提供它字符串解释器不会改变字符串。