Postgresql Обычное выражение для соответствия и замены только слова в верхнем регистре - PullRequest
2 голосов
/ 14 января 2020

Мне нужно сопоставить и заменить все слова UPPERCASE в строковом поле Postgres, например

'GARLASCO Cavour/Oriani'
'SANNAZZARO DE' BURGONDI Italia, 46 (Direzione Sud)'
'S.MARGHERITA STAFFORA Vallechiara (Bivio Montemartino)'
'GAMBOLO' Umberto I, 312'

Я пытаюсь использовать [AZ \ ''.] {2,}

SELECT REGEXP_REPLACE('SANNAZZARO DE' BURGONDI Italia, 46 (Direzione Sud)',' \b[A-Z]{2,}\b','','g')

, но работает только для строки с 1 заглавным миром, как 'GARLASCO Cavour / Oriani'

1 Ответ

1 голос
/ 14 января 2020

Вы можете использовать

REGEXP_REPLACE(your_col_here,' '^[A-Z[:space:].'']+\y','')

Это заменит следующие совпадения:

  • ^ - начало строки
  • [A-Z[:space:].']+ - 1+ заглавные буквы (вы также можете заменить A-Z на [:upper:]), пробелы, точки или апострофы в ...
  • \y - граница слова.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...