php从字符串获取或打印特殊字符、数字、字母seprate seprate

php从字符串获取或打印特殊字符、数字、字母seprate seprate,php,Php,我有一个字符串,比如: $str = "hello@$how%&*!are345You^_THere56"; 我希望字母表存储在一个变量中,如: hello,how,are,you,THere 3,4,5,5,6 数字应存储在一个变量中,如: hello,how,are,you,THere 3,4,5,5,6 特殊字符分别为: @$%&*!^_ 我如何才能做到这一点?在我看来,最好的选择是使用: 你可以检查正则表达式匹配 $str = "hello@$how%&

我有一个字符串,比如:

$str = "hello@$how%&*!are345You^_THere56";
我希望字母表存储在一个变量中,如:

hello,how,are,you,THere
3,4,5,5,6
数字应存储在一个变量中,如:

hello,how,are,you,THere
3,4,5,5,6
特殊字符分别为:

@$%&*!^_

我如何才能做到这一点?

在我看来,最好的选择是使用:


你可以检查正则表达式匹配

$str = "hello@$how%&*!are345You^_THere56";

for($i=0; $i<strlen($str ); $i++) 
     if($str[$i] == "^[0-9]*$") {
           //store numbers
      }
     else-if($str[$i] == "^[a-zA-Z]*$") {
     // store characters
       }
    else {
       //store special characters
      }
$str=“您好,$how%&*!您在吗?”;
对于($i=0;$i试试这个

$strs = '';
$num = '';
$sc = '';

$str = 'hello@$how%&*!are345You^_THere56';
$a = str_split($str);
$prev = '';
foreach($a as $v){
    switch($v){
        case is_numeric($v):
            $num .= $v;
            break;
        case preg_match('/[a-zA-Z]/',$v):
                $sc .= $v;
            break;
        default:
            $strs .= $v;
            break;
    }
    $prev = $v;
}

echo "<p>";
echo "<p>Strings: ".$strs."</p>";
echo "<p>Numbers: ".$num."</p>";
echo "<p>Special Characters: ".$sc."</p>";
$strs='';
$num='';
$sc='';
$str='hello@$how%&*!你在那里吗?';
$a=str\U分割($str);
$prev='';
foreach($a作为$v){
交换机($v){
案例为数字($v):
$num.=$v;
打破
案例预匹配('/[a-zA-Z]/',$v):
$sc.=$v;
打破
违约:
$strs.=$v;
打破
}
$prev=$v;
}
回声“”;
echo“字符串:“.$strs.”

”; 回显“数字:”.$num.“

”; 回显“特殊字符:“.$sc.”

”;
@PrashantRai如果答案对你有帮助,你应该投赞成票。