如果我想在页面上找到所有价格,那么PHP正则表达式是什么?
所以我的页面有类似的内容:
2006 Ford F-250 Lariat - $20995
2005 BMW X3 3.0i***Silver SUV A Must SEE!#($(******* - $18950
2009 Chevrolet Impala LT - $15688
如何编写正则表达式来搜索$ +之后的任意数量的数字?
答案 0 :(得分:5)
preg_match_all("#- (\$\d+)#",$txt,$matches);
print_r($matches);
匹配小数:
preg_match_all("#- (\$\d+(?:\.\d+)?)#",$txt,$matches);
答案 1 :(得分:0)
我的尝试:
$regex = "@(\$[\.0-9]+)@";
答案 2 :(得分:0)
试试:
\$[0-9]+(\.[0-9]+)?
这将匹配$ 4545和$ 4545.45
答案 3 :(得分:0)
preg_match_all('/(\$\d{1,3}(,\d{3})*(\.\d{2})?)/', $page, $matches);
这适用于$999
和$999.99
格式,有或没有分隔符。
答案 4 :(得分:0)
这是正确的正则表达式,用于匹配带有或不带分数的$
的数字,带或不带分隔符。在数字之后需要一个空格或行的结尾。
\$(?:\d{1,3}(,\d{3})*+|\d+)(?:\.\d{1,2})?(?=\s|$)
这将匹配
$ 1
$ 1234
$ 1234567个
$ 1.25
$ 1234
$ 1234.12
$ 1,123.1
$ 1,123.12
$ 12,123.1
$ 123,123.12
$ 123,123,123.12
但不是
$ 1,12.12
$ 1.123
$ 1,1234
$ 0.12