从字符串中分离字母和数字

时间:2015-11-25 17:19:15

标签: php

$str = 'ABC300';

我如何获得像

这样的值
$alphabets = "ABC";
$numbers = 333;

3 个答案:

答案 0 :(得分:1)

我有一个想法,首先从字符串中删除数字并保存在变量中。然后从$ str变量中删除字母并保存。试试代码

 $str = 'ABC300';
$alf= trim(str_replace(range(0,9),'',$str));//removes number from the string 
$number = preg_replace('/[A-Za-z]+/', '', $str);// removes alphabets from the string 
echo $alf,$number;// your expected output 

答案 1 :(得分:0)

一种方法是找到所有数字并使用数组将原始字符串替换为里面的数字。

例如

function extractDigits($string){
    preg_match_all('/([\d]+)/', $string, $match);

    return $match[0];
}

$str = 'abcd1234ab12';
$digitsArray = extractDigits($str);
$allAlphas = str_replace($digitsArray,'',$str);
$allDigits = '';
foreach($digitsArray as $digit){
   $allDigits .= $digit;
}

答案 2 :(得分:0)

尝试这样的事情(它不那么快)......

$string = "ABCDE3883475";
$numbers = "";
$alphabets = "";
$strlen = strlen($string);
for($i = 0; $i <= $strlen; $i++) {
    $char = substr($string, $i, 1);
    if(is_numeric($char)) {
        $numbers .= $char;
    } else {
        $alphabets .= $char;
    }
}

然后所有数字都应该在$numbers中,并且所有字母字符都应该在$alphabets;)

https://3v4l.org/Xh4FR