php - 在php中使用正则表达式将字符串转换为包含数字和字母的数组?

标签 php regex string preg-match-all

我有一个包含字母或数字的字符串。

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/

相关文章:

javascript - 如何在javascript函数中包含php文件?

php - 不想从浏览器 url 显示我的文件夹文件结构

php - Laravel v5.6 错误显示此 "Undefined offset: 0 (View: C:\xampp\htdocs\schoolmanagement\resources\views\displaycombinedata.blade.php)"

python - 正则表达式在使用 OR 运算符匹配第一条规则后不会停止评估

java - 从字符串生成器中删除字符

php - Magento 中订单完成后调用新的 php 函数

正则表达式中的php变量?

MySQL 正则表达式 : Got error 'empty (sub)expression' from regexp

c - C中指向char和字符数组的指针

复制 C 中的字符串数组错误