首页 > 解决方案 > Postgresql 正则表达式仅匹配大写单词

问题描述

我需要匹配并替换 Postgres 字符串字段中的所有大写单词,例如

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

这个正则表达式:

\b[A-Z'\''.]{2,}\b

使用https://regex101.com/测试有效('GAMBOLO' Umberto I, 312' 除外)。

但它在 postgres 中不起作用:

SELECT REGEXP_MATCHES('GARLASCO Cavour/Oriani', '\b[A-Z\''.]{2,}\b','g');
SELECT REGEXP_REPLACE('GARLASCO Cavour/Oriani',' \b[A-Z\''.]{2,}\b','','g')

什么都不匹配。

我也尝试不使用\''。

SELECT REGEXP_MATCHES('GARLASCO Cavour/Oriani', '\b[A-Z]{2,}\b','g');
SELECT REGEXP_REPLACE('GARLASCO Cavour/Oriani',' \b[A-Z]{2,}\b','','g')

标签: regexstringpostgresql

解决方案


推荐阅读