我有一个正则表达式,删除所有内容,只留下数字和点。它不适用于大数字。
EG。当5.99英镑投入使用时我会得到5.99 但对于像48.49英镑这样的大数字,我得到了.49
我希望这可以使用大到100.99英镑的数字
/[^0-9.]+([0-9]{2}){0,1}/
输入类似于“这需要25.95英镑。”
结果应为25.95
答案 0 :(得分:2)
您可以使用
'~(\d+(?:\.\d+))|.~s'
并替换为\1
。
请参阅regex demo
此正则表达式替换将仅保留字符串中的整数和浮点数。
请参阅IDEONE demo:
$re = '~(\d+(?:\.\d+))|.~su';
$str = "this costs £25.95.";
$result = preg_replace($re, '\1', $str);
echo $result;
// => 25.95