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

时间:2013-10-26 08:16:01

标签: php string

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

5 个答案:

答案 0 :(得分:7)

我认为你需要使用自己的逻辑。如果您只对计算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));
?>

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

答案 1 :(得分:6)

<强>测试

以下正则表达式替换所有数字,符号和&amp;空间。简而言之......它只允许使用字母A-Za-z,其他字母不会被考虑在内。

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

答案 2 :(得分:0)

我建议使用正则表达式,以及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

答案 3 :(得分:0)

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

$words = count( $word );

答案 4 :(得分:0)

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

<?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++;
  }
}