我想从字符串中拆分数字和字母,但有问题
输入如:
输入示例1:A5
输入示例2:C16
输入示例3:A725
输入示例4:X05
结果必须是:
结果示例1:'A','5'
结果示例2:'C','16'
结果示例3:'A','725'
结果示例4:'X','05'
我尝试使用belo正则表达式,但是没有给出好结果:
preg_split('/(?=\d+)/', $input)
答案 0 :(得分:3)
您还需要添加一个负面的后视,以确保所选的空字符串不在两位数的中间位置。
目前,对于字符串A725
,您的正则表达式将在7
,2
和5
之前拆分空字符串,因为所有字符串后跟至少一位数字
您可以使用此正则表达式:
preg_split('/(?<!\d)(?=\d+)/', $input)
答案 1 :(得分:0)
您可以使用:
$s = 'A5,C16,A725,X05';
if (preg_match_all("~(?>[a-z]+|\d+)~i", $s, $arr))
var_dump($arr[0]);
给出:
array(8) {
[0]=>
string(1) "A"
[1]=>
string(1) "5"
[2]=>
string(1) "C"
[3]=>
string(2) "16"
[4]=>
string(1) "A"
[5]=>
string(3) "725"
[6]=>
string(1) "X"
[7]=>
string(2) "05"
}