是否有关于如何在句子或字符串上获取CAPS单词的功能或方法?
示例:$str = "ABOUT US who we are"
我如何识别并获取大写单词"ABOUT US"
并将其分隔为小写字母"who we are"
?因此输出将是$str1 = "ABOUT US"
和$str2 = "who we are"
...谢谢!
答案 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"]
结尾。或者,您可以为文本的大写和小写块分别使用单独的数组。