数组 – 从正则表达式结果中删除大括号
发布时间:2020-12-14 05:58:11 所属栏目:百科 来源:网络整理
导读:问题 这段代码: select x::textfrom regexp_matches( 'i1 into o2,and g1 into o17','[gio][0-9]{1,}','g' ) as x; 返回这些结果: {i1}{o2}{g1}{o17} 而不是以下结果: i1o2g1o17 相关链接 http://www.postgresql.org/docs/9.1/static/functions-matching.
问题
这段代码: select x::text from regexp_matches( 'i1 into o2,and g1 into o17','[gio][0-9]{1,}','g' ) as x; 返回这些结果: {i1} {o2} {g1} {o17} 而不是以下结果: i1 o2 g1 o17 相关链接 > http://www.postgresql.org/docs/9.1/static/functions-matching.html 题 使用PostgreSQL 9.x删除大括号的最有效方法是什么? 解决方法
最优解
您的 SELECT x[1] FROM regexp_matches('i1 into o2,'g') AS x; 其他方案 SELECT unnest(x) -- also works for cases with multiple elements per result row SELECT trim(x::text,'{}') -- corner cases with results containing `{}` SELECT rtrim(ltrim(x::text,'{'),'}') AS x1 -- fewer corner cases 如果模式每个输入值可以匹配或不匹配多次,也可以删除可选参数’g’. 如果函数总是返回一行,请考虑与Postgres 10一起引入的略有不同的变体 在Postgres 10或更高版本中,由于SELECT列表中的多个SRF的行为最终已被清理,因此在SELECT列表中直接建议设置返回函数(SRF) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |