在PHP中选择HTML元素中的数字

时间:2011-05-18 09:52:05

标签: php regex

<root>
<td align="left"><a title="Testing" href="www.test.com/product/">$129.00</a></td><td valign="bottom">Testing</td></root>

如何选择上例中的129.00?我不想要$

目前我有preg_match('/\$.{6}/')来选择此项。这通常没问题,但每当它变为4位数字符串时,它就会失败。例如。 $50.00

感谢。

3 个答案:

答案 0 :(得分:4)

正如许多人会告诉你的那样,不要使用正则表达式来解析html / xml结构。但如果您真的想要或必须使用正则表达式,请尝试以下模式:

\$([0-9\.]+)

替代方案在这里看:

http://php.net/manual/en/book.simplexml.php

http://www.php.net/manual/en/book.dom.php

答案 1 :(得分:1)

试试这个正则表达式,从这里得到它:Link

 \$\d+\.\d{2}

答案 2 :(得分:0)

replace all "foo" between two HTML tags using REGEX (PHP code)

<?php
$string ='<root>
<td align="left"><a title="Digitan Technology: Click to see item" href="www.digitan.com.au/home.php?cat=2655" target="retailer">$115.20</a></td><td valign="bottom">AMD PHENOM X4 Quad Core 9650 CPU, 2.3GHz (95W), 4MB Cache, Sockets AM2+/AM2</td></root>';
preg_match('/\$([0-9\.]+)(?=(?:.(?!<a))*<\/a>)/', $string, $match);
echo $match[1];
?>