Regex Postgresql正则表达式只匹配和回复大写单词
我需要匹配并替换Postgres字符串字段中的所有大写单词,如Regex Postgresql正则表达式只匹配和回复大写单词,regex,string,postgresql,Regex,String,Postgresql,我需要匹配并替换Postgres字符串字段中的所有大写单词,如 'GARLASCO Cavour/Oriani' 'SANNAZZARO DE' BURGONDI Italia, 46 (Direzione Sud)' 'S.MARGHERITA STAFFORA Vallechiara (Bivio Montemartino)' 'GAMBOLO' Umberto I, 312' 我试着用 [A-Z\'.]{2,} 但它只适用于带有1个大写字母的字符串,如“GARLASCO Cavour/O
'GARLASCO Cavour/Oriani'
'SANNAZZARO DE' BURGONDI Italia, 46 (Direzione Sud)'
'S.MARGHERITA STAFFORA Vallechiara (Bivio Montemartino)'
'GAMBOLO' Umberto I, 312'
我试着用
[A-Z\'.]{2,}
但它只适用于带有1个大写字母的字符串,如“GARLASCO Cavour/Oriani”您可以使用
REGEXP_REPLACE(your_col_here,' '^[A-Z[:space:].'']+\y','')
这将替换以下匹配项:
-字符串的开头^
-1+大写字母(您也可以将[A-Z[:space:][.]+
替换为A-Z
[:upper:][/code>)、空格、点或撇号位于
-单词边界\y
'SANNAZZARO DE'BURGONDI Italia,46(Direzione Sud)
未编译。你的意思是'SANNAZZARO DE''BURGONDI Italia,46岁(迪雷齐奥南部)
?另外,您知道不支持\b
,您需要使用\y
?那么预期的结果是什么呢?如果字符串的开头需要匹配项,请尝试使用'^[A-Z[:space::][.']+\y'
模式<代码>'g'是多余的。或者,'^.*.\y([:upper:][:lower:]])
并替换为'\1'
@WiktorStribiżew抱歉,这是'SANNAZZARO DE''BURGONDI Italia,46(Direzione Sud)
,字符串开头应该有匹配项,'^[A-Z[:space:]+\y'
REGEXP_REPLACE(your_col_here,' '^[A-Z[:space:].'']+\y','')