计算字符串中没有空格和特殊字符的字符数


Count no.of characters in a string without spaces and special characters?

我们有strlenmb_strlen的字符串计数,但给出了字符串中的所有字符。我只想计算给定字符串中的字符 [a-z][A-Z] 是否有每个定义的函数.或者我们需要发展自己的逻辑。

已测试

以下正则表达式替换所有数字、符号和空格。简短地说..它只允许字母A-Za-z,其他的不会被考虑在内。

<?php
$str='Hello World345345 *90234 $$5assd54';
$str = preg_replace("/[^A-Za-z]/","",$str);
echo $str;//HelloWorldassd
echo strlen($str);//14

我认为你需要使用自己的逻辑。如果您只对计算 a-z 和 A-Z 感兴趣,那么这应该可以工作:

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

基本上,这只是删除我们不在我们允许的字符列表中的所有内容,然后计算结果中的字符。

我建议使用正则表达式,以及preg_match_all返回匹配数的事实。为什么选择RE?因为您可能经常需要添加新的字符进行翻译才能计算实际大小。

<?php
$str = ' this is my String with spécial chars';
echo strlen($str) . "'n";
echo preg_match_all ('/[A-Za-z]/', $str, $out) . "'n" ;

产生3829

$word = explode( ' ',$sentence ); 
$words = count( $word );

或者你可以像这样编写自定义代码

<?php
$x = "rahul";
$len = strlen($x);
$myLen = 0;
for($i =0; $i < $len ; $i++) {
  if(!( $x[$i]==" " || $x[$i]=="/" || $x[$i]=="&" )) { // Add more conditions here
    $myLen++;
  }
}