Php 正则表达式理解。获取大写单词。群序列
我有一个功能:Php 正则表达式理解。获取大写单词。群序列,php,regex,Php,Regex,我有一个功能: public static function getUpperCase($str) { preg_match_all('/([A-Z][a-zA-Z0-9-]*[\s])([A-Z][a-zA-Z0-9-]*[\s]?)+/', $str, $matches); return $matches[0]; } 当我尝试测试我的字符串时: 想想一个Redditor的故事,他知道Google Home是否有 内部温度传感器。他在家里和家里感到有点冷
public static function getUpperCase($str) {
preg_match_all('/([A-Z][a-zA-Z0-9-]*[\s])([A-Z][a-zA-Z0-9-]*[\s]?)+/', $str, $matches);
return $matches[0];
}
当我尝试测试我的字符串时:
想想一个Redditor的故事,他知道Google Home是否有
内部温度传感器。他在家里和家里感到有点冷
店员问:“里面的温度是多少?”他想
这个系统可以从他的巢里的恒温器计算出温度
并向他汇报
我得到了以下结果:
[1]: Google Home
我如何获得以下信息:
[1]: Consider
[2]: Redditor
[3]: Google Home
[4]: He
[5]: What
[6]: He
[7]: Nest
将
+
量词替换为星形量词*
或使用以下简化版本:
[A-Z]\w+(?:\s+[A-Z]\w+)*
将
+
量词替换为星号量词*
或使用以下简化版本:
[A-Z]\w+(?:\s+[A-Z]\w+)*
@revo的答案是正确的。但是,如果要保留您的版本,请检查以下版本:
([A-Z][A-zA-Z0-9-]*[\s]?)+
请参阅:@revo的答案是正确的。但是,如果要保留您的版本,请检查以下版本:
([A-Z][A-zA-Z0-9-]*[\s]?)+
请参阅:为了简单起见,我使用了
\w
但是如果它不适合您的需要,您可以使用您自己的角色类。为了简单起见,我使用了\w
但是如果它不适合您的需要,您可以使用您自己的角色类。