这样你就不会有单独的//With ions in the equation:
// charge written like: sign number
$s= "1H2SO4=> 2H+1 + 1SO4-2 " ;
//$s = "1O2 + 2H2=> 2H2O";
$len = strlen($s);
$html = '';
if($len > 0) {
$prev = $s[0];
$html = $prev;
for($i=1;$i
{
$ch = $s[$i];
if(is_numeric($ch) && 'a' <= strtolower($prev) && strtolower($prev) <= 'z')
{ $html .= "$ch"; }
else
{
if(($ch=="+" or $ch=="-") && '1' <= strtolower($s[$i+1]) && strtolower($s[$i+1]) <= '9')
{
$html .= "$ch";
$html .= "".$s[$i+1]."";
$i=$i+1;
}
else
{
$html .= $ch;
}
$prev = $ch;
}
}
}
echo $html;和preg_replace('/([A-Z)])([0-9]+)/', '\1\2', $input)在彼此相邻的数字高于9(例如,而不是)。它还会考虑括号以及字母前的数字。