考虑以下字符串:
I bought 70 apples for $15.45, 2 cars for 23.000 each
我正在寻找可以返回以下结果的正则表达式:
I bought {NUMBER:70} apples for ${NUMBER:15.45}, {NUMBER:2} cars for
{NUMBER:23.000} each
我相信我想要过滤的范围是一个带有(最多)6位数的浮点数。我不知道是否必须指定。
非常感谢任何帮助:)
答案 0 :(得分:1)
试试这个:
$text = preg_replace("((?<!{NUMBER:)([0-9]+(?:\.[0-9]+)?)(?!}))","{NUMBER:$1}",$text);
这将按照您的要求执行,但还包括检查以确保该号码尚未放入{NUMBER:#}
容器中;)
没有检查:
$text = preg_replace("([0-9]+(?:\.[0-9]+)?)","{NUMBER:$0}",$text);
答案 1 :(得分:0)
看一下这个:http://regexr.com?2vvpq
[0-9]+\.[0-9]{0,6}
答案 2 :(得分:0)
此表达式将解决您的问题:
([\d.$])*