Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中识别并获取字符串中的大写单词_Php - Fatal编程技术网

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

在php中识别并获取字符串中的大写单词,php,Php,有没有一个函数或方法来获取句子或字符串上的大写单词? 示例:$str=“关于我们是谁” 我如何才能识别并获取大写单词“关于我们”,并将其与小写单词“我们是谁”?因此,输出将是$str1=“关于我们”和$str2=“我们是谁”。。。谢谢 您可以对其使用正则表达式: preg_match_all('/\b([A-Z]+)\b/', $str, $matches); 要匹配小写单词,请使用以下命令: preg_match_all('/\b([a-z]+)\b/', $str, $matches2);

有没有一个函数或方法来获取句子或字符串上的大写单词? 示例:
$str=“关于我们是谁”

我如何才能识别并获取大写单词
“关于我们”
,并将其与小写单词
“我们是谁”
?因此,输出将是
$str1=“关于我们”
$str2=“我们是谁”
。。。谢谢

您可以对其使用正则表达式:

preg_match_all('/\b([A-Z]+)\b/', $str, $matches);
要匹配小写单词,请使用以下命令:

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

然后,您可以使用诸如
内爆()
之类的函数来构建字符串。

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


为了获得更大的灵活性,您可以在一个数组中创建$str1和$str2元素。然后,您可以在每次解析的文本改变大小写时添加新元素。例如,文本
“HELLO AND welcome to STACKOVERFLOW bro”
将以
[“HELLO AND”,“welcome to”,“STACKOVERFLOW”,“bro”]
结尾。或者您可以为文本的大小写块使用单独的数组

那我们是谁呢?这一点都不重要。因为所有要检查的字符串都会有一个结构,其中所有大写字母都在第一行,小写字母都在第二行,就像这样“大写字母第一个小写字母下一个”我对正则表达式不太熟悉(有点在学习过程中),但我想他想包括空格和修剪(如果他想的话)是“关于我们”而不是“关于”“我们”或者“关于我们”)这应该不太难添加,但正如我所说,我不想冒险编辑它。字符串将始终具有单词/s所有大写字母,它们将在第一次出现时出现,小写字母将在其旁边,就像示例中一样。。。因此,我将要测试的字符串总是类似于“所有大写字母优先,所有小写字母次之”,因此,如果我有关于如何操作的条件,那么将两者分开会更容易。当然,每个分隔字符串前后的空格将被忽略