【问题标题】:Postgresql: removing spaces between certain type of digitsPostgresql:删除某些类型的数字之间的空格
【发布时间】: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')

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

【问题讨论】:

    标签: postgresql regexp-replace


    【解决方案1】:

    试试这个查询:

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

    【讨论】:

    • 您能否详细说明“不起作用”?我认为我的正则表达式是正确的。
    • 对不起,我的错误。是的,如果您在开头省略 \s* 并在结尾省略 \s+(如您的正则表达式),它确实有效。感谢您的帮助!
    猜你喜欢
    • 2018-03-04
    • 2021-08-12
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    相关资源
    最近更新 更多