Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Postgresql正则表达式只匹配和回复大写单词_Regex_String_Postgresql - Fatal编程技术网

Regex Postgresql正则表达式只匹配和回复大写单词

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

我需要匹配并替换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/Oriani”

您可以使用

REGEXP_REPLACE(your_col_here,' '^[A-Z[:space:].'']+\y','')
这将替换以下匹配项:

  • ^
    -字符串的开头
  • [A-Z[:space:][.]+
    -1+大写字母(您也可以将
    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','')