将字符串分解为字符和数字部分

3

我有一个字符串,像这样:

HCl3C24

我希望在php中拆分这个字符串,就像这样
array(0 => H , 1 => Cl, 2 => 3 , 3 => C, 4 => 24)

我现在正在尝试:

$matches = array();
$string = "HCl4";
preg_match_all('/([0-9]+|[a-zA-Z]+)/',$string,$matches);
print_r($matches[0]);

对于数字而言是有效的,但对于字符无效。 有人可以在这里帮助我吗?


1
你不想要 [ "H", "Cl", 3, "C", 24 ] 吗? - Halcyon
@frits:是的,我想要你写的那个东西!你知道我该怎么做吗? - Satish Saini
2个回答

5

使用这个正则表达式:

/([0-9]+|[a-zA-Z])/

如果你想要得到[ "H", "Cl", 3, "C", 24 ],那么

/([0-9]+|[A-Z][a-z]*)/

完成了。这是我之前提出的问题中的/([0-9]+|[.]+|[()]+|[A-Z][a-z]*)/。 :) - Satish Saini

0

你也可以将字符串视为数组来访问其中的每个字符:

$string = "HCl4";
echo $string[0] // prints H
echo $string[1] // prints C
echo $string[2] // prints l
echo $string[3] // prints 4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接