如何为 Google BigQuery 转义 JavaScript UDF 中的字符?

Posted

技术标签:

【中文标题】如何为 Google BigQuery 转义 JavaScript UDF 中的字符?【英文标题】:How do I escape characters inside a JavaScript UDF for Google BigQuery? 【发布时间】:2017-05-26 18:51:00 【问题描述】:

在我为 BigQuery 编写的 javascript UDF 中,我想使用正则表达式。在 JavaScript 中,我可以使用 var rep = new RegExp(/require\(\[([^\]]+)\]/, 'gm'); 就好了。但是,当通过 BigQuery 运行时,它会出现以下错误:Error: Syntax error: Illegal escape sequence: \(

有没有办法为 BigQuery JS UDF 转义这些?

查询示例:https://bigquery.cloud.google.com/savedquery/300830567303:6116513b17ca4a77b58fec869fe5a846

【问题讨论】:

当您提出简单查询时 - 我建议您为那些可能不小心运行它而不是支付意外 $$$ 的人提及此类查询的成本。您的查询的成本是 - 有效:此查询在运行时将处理 2.21 TB。并且费用至少为 11.00 美元 - 例如,如果您使用 BigQuery Mate - 您将能够轻松地抓住它 - 如果没有 - 您可能会错过它 - 最终会产生额外的账单 【参考方案1】:

是的!

诀窍是您必须将每个反斜杠转义为 \\ 才能在 JavaScript UDF 中添加一个反斜杠。那么你的正则表达式必须是:

var re = new RegExp(/require\\((\\[[^\\]]+\\])/, 'gm');

【讨论】:

以上是关于如何为 Google BigQuery 转义 JavaScript UDF 中的字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Google Bigquery 表创建季度分区 [重复]

如何为 Google BigQuery JDBC 驱动程序指定区域位置?

尝试使用带有反斜杠作为转义字符的Google Bigquery CLI导入CSV时出错

如何为每一行使用带有 bigquery 流插入的插入 ID?

BigQuery - 如何为我的查询使用槽

如何为 BigQuery 中的 GA 数据创建基于页面和事件的转化渠道