Google bigquery BigQuery反斜杠的非法转义序列/

Google bigquery BigQuery反斜杠的非法转义序列/,google-bigquery,Google Bigquery,我正在使用UDF为“test/test”这样的短语做一个小正则表达式,我遇到了一个无法纠正的错误 CREATE TEMPORARY FUNCTION parseMethod(queryString STRING) RETURNS STRING LANGUAGE js AS \"\"\" var match_regex = /test\/(\w+)/i; var found_method; if(found_method = queryString.match(match_regex)){ m

我正在使用UDF为“test/test”这样的短语做一个小正则表达式,我遇到了一个无法纠正的错误

CREATE TEMPORARY FUNCTION parseMethod(queryString STRING)
RETURNS STRING
LANGUAGE js AS
\"\"\"
var match_regex = /test\/(\w+)/i;
var found_method;
if(found_method = queryString.match(match_regex)){
  method_list = found_method[1];
}
return method_list;
\"\"\";

SELECT
parseMethod('test/test') AS result
当我运行这段代码时,我得到一个错误

Error in query string: Error processing job
'click-1315:XXXXXXXX': Syntax error:
Illegal escape sequence: \/

javascript函数在node.js中运行良好,所以我猜BigQuery的解析不喜欢这种格式。我也尝试了
\\/
,但出现了相同的错误。如何修复此问题?

您只需删除
CREATE TEMPORARY FUNCTION
语句中的反斜杠,并在正则表达式中添加一对反斜杠即可。这似乎有效:

CREATE TEMPORARY FUNCTION parseMethod(queryString STRING)
RETURNS STRING
LANGUAGE js AS
"""
var match_regex = /test\\/(\\w+)/i;
var found_method;
if(found_method = queryString.match(match_regex)){
  method_list = found_method[1];
}
return method_list;
""";

SELECT
parseMethod('test/test') AS result;

我之所以使用这些
\“\”
,是因为我在shell脚本中使用CLI。您只是在某种语言中使用bigquery api吗?我通过UI进行了尝试。不过,您可以将该查询文本放入文件中,然后通过管道将其导入CLI。有关示例,请参阅。