Regexp PHP拆分数字和字符串

Regexp PHP拆分数字和字符串,php,regex,split,match,Php,Regex,Split,Match,我想拆分一个包含一些数字和字母的字符串。像这样: Abhe123 123ABCd Abhe Abhe 123 123 ABCd Abhe 我试过这个: <?php preg_split('#(?<=\d)(?=[a-z])#i', "ABCd Abhe 123"); ?> 谢谢你的帮助!;) 改用preg\u match\u all preg_match_all("/(\d+)*\s?([A-Za-z]+)*/", "ABCd Abhe 123

我想拆分一个包含一些数字和字母的字符串。像这样:

Abhe123 123ABCd Abhe Abhe 123 123 ABCd Abhe 我试过这个:

<?php preg_split('#(?<=\d)(?=[a-z])#i', "ABCd Abhe 123"); ?>

谢谢你的帮助!;)

改用
preg\u match\u all

preg_match_all("/(\d+)*\s?([A-Za-z]+)*/", "ABCd Abhe 123" $match);
每场比赛:

  • $match[i][0]
    包含匹配的段
  • $match[i][1]
    包含数字
  • $match[i][2]
    包含字母
(参见正则表达式测试)

然后将它们放入一个数组中

for($i = 0; $i < count($match); $i++)
{
    if($match[i][1] != "")
        $numbers[] = $match[1];

    if($match[i][2] != "")
        $letters[] = $match[2];
}

也许是这样的

$numbers = preg_replace('/[^\d]/', '', $input);
$letters = preg_replace('/\d/', '', $input);

那么您希望上面的字符串有什么输出呢?如果可能的话,可以使用我写的数组。(谢谢你编辑我的帖子:$)太棒了!我不知道这个网站!我刚改为:(\d+)|([\WA-Za-z]+)来使用空格。非常感谢。我回来了^很奇怪,我有字母,但没有数字。。。一个主意?但是如果我在这里测试:,它是有效的……正如你在那里看到的,数字都在$match的索引1中,而字母在$match的索引2中。确保你得到了正确的索引。另外,您使用什么作为输入?一根长字符串?是普通字符串。我检查了输入字符串,得到了类似于:Abc aaa25的内容。然后,我检查数组:count(数字)和count(字母)。其中一个是0=>数字。我不明白:使用
preg\u match\u all
而不是
preg\u match
,请参阅更新的答案
$numbers = preg_replace('/[^\d]/', '', $input);
$letters = preg_replace('/\d/', '', $input);