regexp_matches更好的方法来摆脱返回的大括号

时间:2012-11-08 10:34:35

标签: postgresql

是否有更好的方法可以在regexp_matches的结果中修剪{""}而不是:

trim(trailing '"}' from trim(leading '{"' from regexp_matches(note, '[0-9a-z \r\n]+', 'i')::text))

1 个答案:

答案 0 :(得分:26)

regexp_matches()返回所有匹配项的数组。数组的字符串表示包含花括号,这就是你得到它们的原因。

如果您只想要所有匹配项的列表,可以使用array_to_string()将结果转换为“简单”文本数据类型:

array_to_string(regexp_matches(note, '[0-9a-z \r\n]+', 'i'), ';')

如果您只对第一场比赛感兴趣,可以选择阵列的第一个元素:

(regexp_matches(note, '[0-9a-z \r\n]+', 'i'))[1]