我有一个包含字母或数字的字符串。
AB1D21E48EFGHI1K
我正在尝试将该字符串分解为数组,如下所示。
[0] => A
[1] => B
[2] => 1
[3] => D
[4] => 21
[5] => E
[6] => 48
[7] => E
[8] => F
[9] => G
[10] => H
[11] => I
[12] => 1
[13] => K
但是,我得到的数组如下:
[0] => Array (
[0] => AB
[1] => 1
[2] => D
[3] => 21
[4] => E
[5] => 48
[6] => EFGHI
[7] => 1
[8] => K
)
到目前为止我已经尝试过以下代码。
$string = 'AB1D21E48EFGHI1K';
preg_match_all('/([0-9]+|[a-zA-Z]+)/', $string, $matches);
print_r($matches);
最佳答案
您应该删除单词字符后的+
以匹配长度1
。所以你的正则表达式应该是
/([0-9]+|[a-zA-Z])/
您可以使正则表达式更简单
/\d+|\w/
代码更改为
$string = 'AB1D21E48EFGHI1K';
preg_match_all('/\d+|\w/', $string, $matches);
print_r($matches);
检查demo中的结果
关于php - 在php中使用正则表达式将字符串转换为包含数字和字母的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43436336/