PHP/PostGres regexp仅当字符串中的单词有2个或更多大写字母且只有字母时才匹配

PHP/PostGres regexp仅当字符串中的单词有2个或更多大写字母且只有字母时才匹配,php,regex,postgresql,Php,Regex,Postgresql,这似乎是一个简单的表达,但我所有的修补都在某个地方失败了。我正在从PostgreSQL数据库中提取数据。我宁愿在PostgreSQL中进行过滤,但如果我需要在PHP中进行过滤,也可以。该列将有一个字符串,我需要搜索任何单词(由空格定义)有两个或更多大写字母的匹配项。如果我需要分解每个字符串并单独解析“单词”,我也可以这样做,但似乎使用regexp是更好的方法。 以下是一些示例: “快速棕色”//无匹配项 “快速棕色”//MATCH(注意QuicK有两个大写) “快速棕色”//Match “QU

这似乎是一个简单的表达,但我所有的修补都在某个地方失败了。我正在从PostgreSQL数据库中提取数据。我宁愿在PostgreSQL中进行过滤,但如果我需要在PHP中进行过滤,也可以。该列将有一个字符串,我需要搜索任何单词(由空格定义)有两个或更多大写字母的匹配项。如果我需要分解每个字符串并单独解析“单词”,我也可以这样做,但似乎使用regexp是更好的方法。

以下是一些示例:

“快速棕色”//无匹配项

“快速棕色”//MATCH(注意QuicK有两个大写)

“快速棕色”//Match

“QUICK1棕色”//No匹配(QUICK是所有大写字母,但它也有一个非字母字符)

“QUICK BROWN1”//Match,因为QUICK很成功,即使BROWN1不成功。

“快速棕色”//无匹配项

“QUICK-BROWN”//No匹配(因为-为非字母,单词仅由空格定义)

“快速棕色”//无匹配项

(^| )[A-Za-z]*[A-Z][A-Za-z]*[A-Z][A-Za-z]*( |$)
通过检查