使用 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 中删除单引号和双引号的主要内容,如果未能解决你的问题,请参考以下文章
Google BigQuery 中的 REGEXP_EXTRACT 不返回任何结果
在 PySpark 中使用 regexp_extract 提取多个单词