我的查询定义为;
var query = " SELECT " +
"REGEXP_REPLACE(TRIM(destination_value), r'[^\d]+', '') " +
"FROM table1";
console.log(query,'query');
bigquery.query(query, function(err, rows) {
if (err === null) {
return resolve(rows);
}else{
return reject(err);
}
});
当我打印查询时,它会返回
SELECT REGEXP_REPLACE(TRIM(destination_value), r'[d]+', '') FROM `table1`;
为什么在我安装时我的查询中的特殊字符不存在?有什么我做错了吗?
提前致谢。
答案 0 :(得分:1)
你需要双重转义正则表达式元字符\d
中的反斜杠,因为JavaScript会消耗第一个反斜杠。请尝试以下方法:
var query = "SELECT " +
"REGEXP_REPLACE(TRIM(destination_value), r'[\^\\d]+', '') " +
"FROM table1";
我不希望^
也需要转义,但我已经这样做了,因为看起来这个角色也会导致问题。您可以在下面的演示中验证查询是否正确打印。