【问题标题】:replace comma within brackets替换括号内的逗号
【发布时间】:2021-10-05 16:21:26
【问题描述】:

我有下面的文字,我试图单独替换括号内的逗号。

[alpha ,beta, theta01, zeta01], [x9001, A2201, zeta01] 预期的输出是

[alpha beta theta01 zeta01], [x9001 A2201 zeta01] 我正在尝试使用正则表达式来完成此操作

WITH t AS (SELECT '[alpha, beta,theta01,zeta01], [x9001, A2201, zeta01]' col1 
             )
SELECT t.col1
     ,REGEXP_REPLACE(t.col1, "(\\[[A-Za-z0-9]*)*,", "\\1") new_col
  FROM t;

\[ -- 转义字符 [ \1 -- 转义组模式

但是,括号之间的逗号也被删除了。这是我得到的输出

[alpha beta theta01 zeta01] [x9001 A2201 zeta01]

任何指针将不胜感激。

【问题讨论】:

    标签: regex google-bigquery


    【解决方案1】:

    考虑以下方法

    select col1,
      ( select string_agg(regexp_replace(el, ',', ''), ', ')
        from unnest(regexp_extract_all(col1, r'\[.*?\]')) el
      ) new_col
    from t      
    

    如果应用于您问题中的样本数据 - 输出是

    【讨论】:

    • 很高兴它对你有用!也考虑投票赞成答案:o)
    猜你喜欢
    • 2016-04-19
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 2018-06-01
    • 1970-01-01
    • 2022-12-30
    相关资源
    最近更新 更多