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

Posted

技术标签:

【中文标题】Postgresql:删除某些类型的数字之间的空格【英文标题】:Postgresql: removing spaces between certain type of digits 【发布时间】:2018-02-24 09:00:06 【问题描述】:

我有一列地址,例如'01031 970 São Paulo SP, BR'

我想删除邮政编码之间的空格。邮政编码可以出现在地址中的任何位置,例如'São Paulo 01031 970 SP, BR'。 结果应该是'São Paulo 01031970 SP, BR''01031970 São Paulo SP, BR'

regexp_replace(address, ,'(\s*[0-9]5\s+[0-9]3\s+)','(\s*[0-9]5[0-9]3\s+)', 'g')

显然不起作用,但我正在寻找可以完成这项工作的等效项。

【问题讨论】:

【参考方案1】:

试试这个查询:

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

【讨论】:

您能否详细说明“不起作用”?我认为我的正则表达式是正确的。 对不起,我的错误。是的,如果您在开头省略 \s* 并在结尾省略 \s+(如您的正则表达式),它确实有效。感谢您的帮助!

以上是关于Postgresql:删除某些类型的数字之间的空格的主要内容,如果未能解决你的问题,请参考以下文章

REGEX 删除空格或破折号,如果它们在数字之间

正则表达式仅删除数字之间的空格

Apache PDFBox 删除字符之间的空格

Postgresql去掉某个字段多余的空格

Postgresql/Greenplum中将数字转换为字符串TO_CHAR函数前面会多出一个空格

GraphQL 到 PostgresQL 类型映射