在php中识别并获取字符串中的大写单词

时间:2012-02-15 21:08:00

标签: php

是否有关于如何在句子或字符串上获取CAPS单词的功能或方法? 示例:$str = "ABOUT US who we are" 我如何识别并获取大写单词"ABOUT US"并将其分隔为小写字母"who we are"?因此输出将是$str1 = "ABOUT US"$str2 = "who we are" ...谢谢!

2 个答案:

答案 0 :(得分:6)

您可以使用正则表达式:

preg_match_all('/\b([A-Z]+)\b/', $str, $matches);

要匹配小写字词,请使用:

preg_match_all('/\b([a-z]+)\b/', $str, $matches2);

然后,您可以使用implode()等函数来构建字符串。

答案 1 :(得分:1)

除了正则表达式解决方案之外,PHP还有neato函数ctype_upper(),用于测试字符串是否全部为大写。您可以一次为一个字符提供正在解析的文本。如果返回true,则将字符添加到$str1。一旦返回false,将字符串的其余部分添加到$str2

为了获得更大的灵活性,您可以在数组中生成$ str1和$ str2元素。然后,每次要解析的文本都会更改大小写时,您可以添加新元素。例如,文字"HELLO AND welcome to STACKOVERFLOW bro"最终会以["HELLO AND", "welcome to", "STACKOVERFLOW", "bro"]结尾。或者,您可以为文本的大写和小写块分别使用单独的数组。