使用 regexp_extract 从 BigQuery 中删除单引号和双引号

Posted

技术标签:

【中文标题】使用 regexp_extract 从 BigQuery 中删除单引号和双引号【英文标题】:Removing single and double quotes from BigQuery using regexp_extract 【发布时间】:2016-10-28 04:36:42 【问题描述】:

我是一个正则表达式的菜鸟。我要做的就是从 BigQuery 中的字符串中删除单引号和双引号。我可以删除字符串开头的单引号和双引号,但不能删除结尾:

SELECT regexp_extract(foo, r'\"new_foo\":\"(.*?)\"') AS new_foo FROM [mybq:Schema.table]

我得到的只是 Null 但没有 regexp_extract 我有预期的结果。感谢您的帮助。

【问题讨论】:

所以,问题是我有时在前面有单引号或双引号,有时在前面,有时在两端,有时都没有。这是一个例子:'atom' bomb crazy''duck'''elephant fox'''giraffe'''hippo''''igloo 【参考方案1】:

试试下面的方法

SELECT REGEXP_REPLACE(foo, r'([\'\"])', '') AS new_foo 
FROM [mybq:Schema.table]

【讨论】:

【参考方案2】:

你的正则表达式应该像/["']/g

您正在使用不同的方法来获得预期的结果。试试REGEXP_REPLACE('orig_str', 'reg_exp', 'replace_str')

类似这样的:

SELECT REGEXP_REPLACE(word, /["']/g, '')AS new_foo 
FROM [mybq:Schema.table]

【讨论】:

【参考方案3】:
select replace(word,'"','') as word

【讨论】:

欢迎来到 Stack Overflow!虽然这段代码可以解决问题,including an explanation 解决问题的方式和原因确实有助于提高帖子的质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请edit您的答案添加解释并说明适用的限制和假设。

以上是关于使用 regexp_extract 从 BigQuery 中删除单引号和双引号的主要内容,如果未能解决你的问题,请参考以下文章

使用 REGEXP_EXTRACT 提取 7 位数字

Google BigQuery 中的 REGEXP_EXTRACT 不返回任何结果

在 PySpark 中使用 regexp_extract 提取多个单词

hive通过regexp_extract从字典串中提取密钥?

regexp_extract 配置单元未按预期工作

Google BigQuery 使用 regexp_extract 从列中提取字符串