Postgres разбивает слово с цифрами и буквами и регистр амеля на две колонки - PullRequest
0 голосов
/ 22 мая 2019

У меня есть куча адресов, которые мне нужно разделить, где номер улицы встречается с городом и где находится его верблюд, например:

255 S Broad St Ste 1600Goldberg Miller & Rubin PcPhiladelphia, PA, 19107-4534

Вы видите число / строковое слово "1600Goldberg".И слово CamelCase это «PcPhiladelphia».Есть ли какое-либо выражение для добавления пробела?

Новая ячейка должна выглядеть следующим образом:

121 S Broad St Ste 1600 Goldberg Miller & Rubin Pc Филадельфия, Пенсильвания, 19107-4534

Он должен разделять все CamelCase и буквенно-цифровые слова пробелом.

1 Ответ

0 голосов
/ 22 мая 2019

Поиск цифры или буквы в нижнем регистре, за которой следует буква в верхнем регистре.

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

...