BigQuery REGEXP_REPLACE
Posted
技术标签:
【中文标题】BigQuery REGEXP_REPLACE【英文标题】: 【发布时间】:2017-12-19 10:12:32 【问题描述】:我有一个查询被定义为;
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`;
为什么我的查询中的特殊字符在我控制台时不存在?有什么我做错了吗?
提前致谢。
【问题讨论】:
您的费率很低。对 SO 很重要,您必须使用已发布答案左侧、投票下方的勾号来标记已接受的答案。这将提高您的费率。通过访问此链接了解其工作原理:meta.***.com/questions/5234/… 【参考方案1】:您需要对正则表达式元字符\d
中的反斜杠进行双重转义,因为第一个反斜杠将被 javascript 使用。请尝试以下操作:
var query = "SELECT " +
"REGEXP_REPLACE(TRIM(destination_value), r'[\^\\d]+', '') " +
"FROM table1";
我不认为^
也需要转义,但我已经这样做了,因为这个字符似乎也引起了问题。您可以在下面的演示中验证查询是否正确打印。
Demo
【讨论】:
以上是关于BigQuery REGEXP_REPLACE的主要内容,如果未能解决你的问题,请参考以下文章
数据处理 - BigQuery 与 Data Proc+BigQuery
BigQuery:写入查询结果时使用 bigquery 作业的意外行为
Google BigQuery - 将数据流式传输到 BigQuery