0

我想从http://www.kitco.com/market/删除以下数据(图像中的粉红色部分)

在此处输入图像描述

我能够使用以下表格从该表下方的世界现货价格 - 亚洲/欧洲/纽约市场 HTML 表格中删除数据.. 但无法获得伦敦固定数据.. 我应该在下面的正则表达式中做哪些更改,因为我尝试了很多组合,但它不起作用

我的代码如下所示

$html= get_url_contents("http://www.kitco.com/market/");
//echo $html;


preg_match_all('!Gold\s+([0-9.]+)\s+([0-9.]+)!i',$html,$matches);

$patt = "/<td[^>]*width=['\"]68['\"][^>]*>([0-9\.]+)<\/td>\s*<td[^>]*width=['\"]68['\"][^>]*>([0-9\.]+)<\/td>/i";
4

1 回答 1

0

请不要使用正则表达式解析 HTML(您可以在这篇强制性文章中看到原因)。

话虽如此,您可以使用 HTML 解析器,例如Simple HTML DOM Parser来处理表格。看看这个以前的 SO 帖子,以朝着正确的方向开始。

编辑:根据您的评论,您可以尝试执行以下操作:<td bgcolor=".+?">\s*<p>\s*(.+?)\s*</p>\s*</td>。但是,我建议不要使用这种方法。

这将匹配并将值放入正则表达式组,然后您可以稍后访问。

注意:同样根据您的评论,您提出的正则表达式也是易受影响的样式更改,因此如果它们更改width列的,您的正则表达式很可能会失败。

于 2013-10-24T04:51:17.630 回答