分别将字符串分为字符和数字

时间:2013-06-26 10:40:35

标签: php regex

我有一个像

这样的字符串
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]);

它不适用于角色而是数字。有人可以帮我吗?

2 个答案:

答案 0 :(得分:5)

使用此正则表达式:

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

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

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

答案 1 :(得分:0)

您还可以通过将其视为数组来访问该字符串的每个字符:

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