替换括号内的逗号
Posted
技术标签:
【中文标题】替换括号内的逗号【英文标题】: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]
任何指针将不胜感激。
【问题讨论】:
【参考方案1】:考虑以下方法
select col1,
( select string_agg(regexp_replace(el, ',', ''), ', ')
from unnest(regexp_extract_all(col1, r'\[.*?\]')) el
) new_col
from t
如果应用于您问题中的样本数据 - 输出是
【讨论】:
很高兴它对你有用!也考虑投票赞成答案:o)以上是关于替换括号内的逗号的主要内容,如果未能解决你的问题,请参考以下文章