如何在BigQuery中移除列中多符号并实现指定字符串符号替换?
在BigQuery中移除列中的指定符号并清理字符串
针对你给出的字符串处理需求,用REGEXP_REPLACE结合正则表达式就能精准完成符号替换,解决之前单独用REPLACE或正则写法不当的问题。
具体SQL示例
SELECT REGEXP_REPLACE( "- , KALIRHAT, - , Bagribari, Jalpaiguri, West Bengal Kalirhat Kalirhat Bagribari DHUPGURI WEST BENGAL 735210", r'(-\s*,\s*|,\s*)', ' ' ) AS cleaned_string;
正则规则说明
- 正则表达式
r'(-\s*,\s*|,\s*)'会匹配两种目标模式:-\s*,\s*:匹配减号后接任意数量空格、逗号、再任意数量空格的组合(比如输入里的"- , "),\s*:匹配逗号后接任意数量空格的组合(比如输入里的", ")
- 把匹配到的内容替换为单个空格,既能移除所有目标符号,又能保留原字符串中原本的多空格(比如
Kalirhat Bagribari里的三个空格)
处理表列的写法
如果要处理表中的某一列,直接把示例中的字符串替换为列名即可:
SELECT REGEXP_REPLACE( your_column_name, r'(-\s*,\s*|,\s*)', ' ' ) AS cleaned_column FROM your_table_name;
内容的提问来源于stack exchange,提问作者Kshitij Tandel
相关产品推荐
相关产品推荐

