嘿,我有以下代码,我用它来隔离用于二次公式的b c变量。
$equation = '-5x^2–3x+4';
$pattern = '/(?:^|[^\^])((?:\- *)?\d+)/';
preg_match_all($pattern, $equation, $pieces);
if (substr($equation, 0) == 'x')
{
$pieces_final[0][0] = 1;
$pieces_final[0][1] = $pieces[0][0];
$pieces_final[0][2] = $pieces[0][1];
}
else
{
$pieces_final = $pieces;
}
print_r($pieces_final);
并且它不起作用,它显示了一个奇怪的ascii角色来取代三个前面的负号,我真的不知道可能是什么错误。
答案 0 :(得分:2)
这不是一个负号。
>>> hex(ord(u'–'))
'0x2013'
>>> unicodedata.name(u'–')
'EN DASH'