如何为 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时出错