使用php计算字符串

时间:2015-12-05 03:02:29

标签: php regex

使用PHP,我需要确定一个字符串是否包含"多于一个"大写字母。

上面的句子包含4个大写字母:PHP和I

我需要多少个大写字母的数量。在上面的句子中,该计数将为4。

我尝试了下面的preg_match_all,但它只让我知道是否找到任何大写字母,即使结果只有一个或任意数量的出现。

if ( preg_match_all("/[A-Z]/", $string) === 0 )
{
     do something
}

3 个答案:

答案 0 :(得分:1)

借用https://stackoverflow.com/a/1823004/我做了upvote )并修改了:

$string = "Peter wenT To the MarkeT";

$charcnt = 0;
$matches = array();
if (preg_match_all("/[A-Z]/", $string, $matches) > 0) {
  foreach ($matches[0] as $match) { $charcnt += strlen($match); }
}

printf("Total number of uppercase letters found: %d\n", $charcnt);

   echo "<br>from the string: $string: ";

foreach($matches[0] as $var){
   echo "<b>" . $var . "</b>";
}

将输出:

找到的大写字母总数:5
从字符串:Peter wenT到MarkeT: PTTMT

答案 1 :(得分:0)

if(preg_match('/[A-Z].*[A-Z]/', $string)){
  echo "there's more than 1 uppercase letter!";
}

答案 2 :(得分:0)

您可以这样做:

if(strlen(preg_replace('![^A-Z]+!', '', $string)) > 1){
    echo "more than one upper case letter";
}