8

文字列を数える必要がstrlenありmb_strlenますが、文字列内のすべての文字が得られます。指定された文字列の文字 [az][AZ] のみをカウントしたいのですが、定義された関数ごとに存在します。または、独自のロジックを開発する必要があります。

4

5 に答える 5

9

テスト済み

次の正規表現は、すべての数字、記号、およびスペースを置き換えます。簡単に言うと..アルファベットのみを許可A-Za-z、他のものは考慮されません。

<?php
$str='Hello World345345 *90234 $$5assd54';
$str = preg_replace("/[^A-Za-z]/","",$str);
echo $str;//HelloWorldassd
echo strlen($str);//14
于 2013-10-26T08:27:41.553 に答える
7

独自のロジックを使用する必要があると思います。az と AZ のカウントのみに関心がある場合は、次のようにします。

<?php
$string= 'This is my sample string.';

echo "Everything: ".strlen($string);
echo '<br />';
echo "Only alphabetical: ".strlen(preg_replace('/[^a-zA-Z]/', '', $string));
?>

基本的には、許可された文字リストにないものをすべて削除してから、結果の文字数を数えるだけです。

于 2013-10-26T08:21:29.533 に答える
0
$word = explode( ' ',$sentence ); 

$words = count( $word );
于 2014-03-28T18:51:19.567 に答える
0

正規表現を使用してpreg_match_all、一致数を返すことをお勧めします。なぜ再?実際のサイズをカウントするために、変換する新しい文字を追加する必要がある場合が多いためです。

<?php

$str = ' this is my String with spécial chars';
echo strlen($str) . "\n";

echo preg_match_all ('/[A-Za-z]/', $str, $out) . "\n" ;

38と を生成し29ます。

于 2013-10-26T08:23:54.233 に答える