Postgres将带有数字和字母的单词和大写字母的单词分成两列

时间:2019-05-22 00:34:09

标签: regex postgresql camelcasing

我有一堆地址,我需要在地址与城市相接的地方以及骆驼的位置进行拆分,例如:

255 S Broad St Ste 1600Goldberg Miller和Rubin Pc费城,宾夕法尼亚州,19107-4534

您可以看到数字/字符串单词是“ 1600Goldberg”。 CamelCase的单词是“ PcPhiladelphia”。有什么表达要加空格吗?

新单元格应显示为:

121 S Broad St Ste 1600 Goldberg Miller&Rubin Pc Philadelphia,PA,19107-4534

它应该将所有CamelCase和字母数字单词都用空格分隔。

1 个答案:

答案 0 :(得分:0)

搜索数字或小写字母,后跟大写字母。

SELECT regexp_replace('255 S Broad St Ste 1600Goldberg Miller & Rubin PcPhiladelphia, PA, 19107-4534', '([\da-z])([A-Z])', '\1 \2', 'g');

那会让你:

| regexp_replace                                                                  |
| :------------------------------------------------------------------------------ |
| 255 S Broad St Ste 1600 Goldberg Miller & Rubin Pc Philadelphia, PA, 19107-4534 |

db<>fiddle