Regexp PHP拆分数字和字符串
我想拆分一个包含一些数字和字母的字符串。像这样: Abhe123 123ABCd Abhe Abhe 123 123 ABCd Abhe 我试过这个: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
<?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);