尝试使用以下正则表达式仅解析数值和一个小数点,但同时也解析字符。有什么想法吗?
<?php
function get_rate1(SimpleXMLElement $xml) {
$exchange['rate'] = $xml->channel->item[15]->description;
$rate = preg_replace("/^([0-9]*|'d*'.'d{1}?'d*)$/", '', $exchange['rate']);
echo $rate . '<br />';
return $rate;
}
?>
预期结果:
11.20409
实际结果:
1 British Pound Sterling = 1.20409 Euro
期望结果:
1.20409
此外,任何关于如何删除英镑之前显示的数字1的第一个数值的想法都会使该值不正确。
提前感谢
if (preg_match("([0-9]+'.[0-9]{1}", $string, $matches)) {
echo $matches[1];
} else {
throw new Exception("GIVE ME NUMBERS, lol");
}
在"This is a text 1.234 with a number"
上应给出"1.2"
与.123
等数字不匹配
实际上,正则表达式应该是:
'/'d*'.'d/'
这将匹配小数点之前的任何数字(0或更多),并且正好超过小数点一位。FritsvanCampen的正则表达式还有一些其他问题,尤其是未闭合的paren。