BigQuery REGEXP_REPLACE

时间:2017-12-19 10:12:33

标签: mysql sql node.js google-bigquery

我的查询定义为;

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`;

为什么在我安装时我的查询中的特殊字符不存在?有什么我做错了吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

你需要双重转义正则表达式元字符\d中的反斜杠,因为JavaScript会消耗第一个反斜杠。请尝试以下方法:

var query = "SELECT " +
            "REGEXP_REPLACE(TRIM(destination_value), r'[\^\\d]+', '') " +
            "FROM table1";

我不希望^也需要转义,但我已经这样做了,因为看起来这个角色也会导致问题。您可以在下面的演示中验证查询是否正确打印。

Demo