正则匹配大小写字母、汉字、特殊字符,并统计次数

<?php
    header('Content-Type:text/html;charset=utf-8');
    $subject='Q54@354e 是 &nbsp;';
    $a = $b = $c = $d = $e = 0;
    for ($i=0; $i < mb_strlen($subject,'utf8'); $i++) {
        $obj = mb_substr($subject,$i,1,'utf-8'); //将单个字符存到数组当中
        if(preg_match('/^[a-z]$/', $obj)){
            $count['xx'] = ++$a;
            echo $obj.'-小写字母'."<br>";
        }elseif(preg_match('/^[A-Z]$/', $obj)){
            $count['dx'] = ++$b;
            echo $obj.'-大写字母'."<br>";
        }elseif(preg_match('/^[0-9]$/', $obj)){
            $count['sz'] = ++$c;
            echo $obj.'-数字'."<br>";
        }elseif(preg_match("/^[\x{4e00}-\x{9fa5}]$/u", $obj)){
            $count['hz'] = ++$d;
            echo $obj.'-汉字'."<br>";
        }else{
            $count['ts'] = ++$e;
            echo $obj."-特殊字符"."<br>";
        }
    }
    echo "<pre>";
    print_r($count);
    echo "</pre>";
?>


结果:
Q-大写字母
5-数字
4-数字
@-特殊字符
3-数字
5-数字
4-数字
e-小写字母
-特殊字符
是-汉字
-特殊字符
&-特殊字符
n-小写字母
b-小写字母
s-小写字母
p-小写字母
;-特殊字符
Array
(
    [dx] => 1
    [sz] => 5
    [ts] => 5
    [xx] => 5
    [hz] => 1
)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值