从文本中提取特定信息

时间:2017-11-04 22:43:14

标签: php regex text

我有一个字符串:

  

他在家里感觉有点冷,并问助理“什么是   里面的温度?“他认为系统会搞清楚   来自他的Nest恒温器的温度并报告回来   他。相反,谷歌助手去了天气报告   因为,土耳其的度假小镇。

这是我获取所有大写单词的功能:

public static function getUpperCase($str) {
    preg_match_all('/\b[A-Z][a-zA-Z]*\b/', $str, $matches);
    return $matches[0];
}

我的输出是:

1: "He"
2: "What"
3: "He"
4: "Nest"
5: "Instead"
6: "Google"
7: "Assistant"
8: "Turkey"

我如何获得n-gramms:

1: "He"
2: "What"
3: "He"
4: "Nest"
5: "Instead"
6: "Google Assistant"
7: "Turkey"

所以如果句子中的大写单词之间没有任何单词,我想把单词组合在一起。

1 个答案:

答案 0 :(得分:2)

您可以调整正则表达式,以便在初始大写单词匹配后贪婪地搜索空格后跟大写单词的次数。

-