20

是否有更好的方法来修剪{""}regexp_matches 的结果而不是:

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

1 回答 1

43

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]
于 2012-11-08T11:02:49.283 回答