由于 Google Big Query 中的正则表达式导致 Python 错误

Posted

技术标签:

【中文标题】由于 Google Big Query 中的正则表达式导致 Python 错误【英文标题】:Python error because of regex inside a Google Big Query 【发布时间】:2016-12-10 00:03:22 【问题描述】:

我正在用 python 编写 Google Big Query 包装器。其中一个查询有一个正则表达式,python 代码将其视为语法错误。

这是正则表达式 当 tier2 包含 '-' THEN REGEXP_EXTRACT(tier2,'(.*)\s-')

错误是无效的字符串文字:'(.*)\s-'> 错误是正则表达式中的 \ 。 任何克服它的建议

【问题讨论】:

【参考方案1】:

您需要通过在反斜杠前面加上另一个反斜杠来转义反斜杠 反斜杠\ 是转义字符,因此您需要对其进行转义,以便将其视为普通字符

试试

'(.*)\\s-'  

根据您的 cmets,上面看起来正是您在 BigQuery 中使用的 - 所以在这种情况下,您需要转义两个反斜杠中的每一个

'(.*)\\\\s-'  

【讨论】:

你是对的......代码在大查询中使用 \\ 但在 python 中以某种方式抛出错误。 这是我在查询中使用的.....WHEN tier2 CONTAINS '-' THEN REGEXP_EXTRACT(tier2,'(.*)\\s-') 所以在这种情况下你需要转义两次 - 试试'(.*)\\\\s-' 你太棒了...... Berlyant先生你太棒了:)

以上是关于由于 Google Big Query 中的正则表达式导致 Python 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用计划查询刷新 Google Big Query 中的现有表?

Google Data Studio:将用户输入写回 Google Big Query 表

如何通过 Google 表格中的二维数组通过 Apps 脚本插入 Big Query?

将Big Query中的数据自动导入Google表格?

关于Google Big Query中数据框中的DateTime与DateTime的问题

将存储在 Google Cloud Storage 中的文件加载到 Big Query 时出错