Postgresql:删除某些类型的数字之间的空格

Postgresql:删除某些类型的数字之间的空格,postgresql,regexp-replace,Postgresql,Regexp Replace,我有一个带有地址的专栏,例如'01031970圣保罗SP,BR' 我想删除邮政编码之间的空格。邮政编码可以出现在地址中的任何位置,例如圣保罗01031 970 SP,BR'。 结果应为圣保罗01031970 SP,BR'或圣保罗01031970 SP,BR' regexp_replace(address, ,'(\s*[0-9]{5}\s+[0-9]{3}\s+)','(\s*[0-9]{5}[0-9]{3}\s+)', 'g') 显然不起作用,但我正在寻找一个做这项工作的等价物。尝试以下查询

我有一个带有地址的专栏,例如
'01031970圣保罗SP,BR'

我想删除邮政编码之间的空格。邮政编码可以出现在地址中的任何位置,例如
圣保罗01031 970 SP,BR'
。 结果应为圣保罗01031970 SP,BR'或圣保罗01031970 SP,BR'

regexp_replace(address, ,'(\s*[0-9]{5}\s+[0-9]{3}\s+)','(\s*[0-9]{5}[0-9]{3}\s+)', 'g')
显然不起作用,但我正在寻找一个做这项工作的等价物。

尝试以下查询:

update your_table
set address = regexp_replace(address, '([0-9]{5})\s+([0-9]{3})', '\1\2', 'g')

你能详细解释一下“不起作用”吗?我想我的正则表达式是正确的。对不起,我错了。是的,如果您在开头省略了
\s*
,在结尾省略了
\s+
(就像在正则表达式中一样),那么它确实有效。谢谢你的帮助!