PHP: dizesinde harf kelimeleri saymak

5 Cevap php

bir dize içinde büyük kelimeleri saymak için kolay bir yol var mı?

5 Cevap

Kalça çekim, ama bu (ya da bunun gibi bir şey) çalışması gerekir:

function countUppercase($string) {
     return preg_match_all(/\b[A-Z][A-Za-z0-9]+\b/, $string)
}

countUppercase("Hello good Sir"); // 2

Sen tüm büyük kelimeleri bulmak ve onları saymak için normal bir ifade kullanabilirsiniz:

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

Ifadesi \b bir word boundary yani sadece bütün büyük sözcükleri maç olacak.

<?php
function upper_count($str)
{
    $words = explode(" ", $str);
    $i = 0;

    foreach ($words as $word)
    {
        if (strtoupper($word) === $word)
        {
            $i++;
        }
    }

    return $i;
}

echo upper_count("There ARE two WORDS in upper case in this string.");
?>

Çalışmalıdır.

Bu bile olmayan-alfanümerik karakterleri içeren bir dize için, bir dize içinde büyük harf sayısını saymak olacaktır

function countUppercase($str){ 
     preg_match_all("/[A-Z]/",$str,$matches); 
     return count($matches[0]);
}

Basit bir çözüm preg_replace olmayan tüm büyük harfleri şerit ve ardından strlen gibi pek ile dönüş dizesi saymak olacaktır:

function countUppercase($string) {
    echo strlen(preg_replace("/[^A-Z]/","", $string));
}

echo countUppercase("Hello and Good Day"); // 3