我有一个定义为的查询;
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`;
为什么我的查询中的特殊字符在我控制台时不存在?我做错了什么吗?
提前致谢。
最佳答案
您需要对正则表达式元字符 \d
中的反斜杠进行两次转义,因为第一个反斜杠将被 JavaScript 使用。尝试以下操作:
var query = "SELECT " +
"REGEXP_REPLACE(TRIM(destination_value), r'[\^\\d]+', '') " +
"FROM table1";
我不希望 ^
也需要转义,但我已经这样做了,因为看起来这个字符也导致了问题。您可以在下面的演示中验证查询是否正确打印。
Demo
关于mysql - BigQuery REGEXP_REPLACE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47884599/