-1

如何使用 PHP + Regex 从这个 html 代码中获得“85 mph”?我想不出正确的正则表达式 这是代码 http://pastebin.com/ffRH9K9Q

    <td align="left">Los Angeles</td>
</tr>
<tr>
    <td align="left">Wind Speed:</td>
    <td align="left">85 mph</td>
</tr>
<tr>
    <td align="left">Snow Load:</td>
    <td align="left">0 psf</td>

(简化示例)

4

3 回答 3

2

你已经听说过不使用正则表达式来完成这项工作,所以我不会谈论这个。让我们在这里尝试一下。也许不是理想的解决方案,但可以为您工作。

    <?php
       $data = 'your table';
       preg_match ('|<td align="left">(.*)mph</td>|Usi', $data, $result);
       print_r($result);  // Your result shoud be in here

您可能需要在正则表达式中进行一些修剪或考虑空格。

于 2012-06-19T23:14:51.577 回答
0

链接到关于 NOT PARSING HTML WITH REGEX 的帖子的第一条评论很重要。也就是说,请尝试使用 DOMDocument::loadHTML之类的方法。这应该让您开始使用 PHP 遍历 DOM。

于 2012-06-19T21:32:16.293 回答
0

要扩展 DorkRawk 的建议(希望提供一个相对简洁的答案,不会让初学者不知所措),试试这个:

<?php

$yourhtml = '<td align="left">Los Angeles</td>
</tr>
<tr>
    <td align="left">Wind Speed:</td>
    <td align="left">85 mph</td>
</tr>
<tr>
    <td align="left">Snow Load:</td>
    <td align="left">0 psf</td>';

$dom = new DOMDocument();
$dom->loadHTML($yourhtml);

$xpath = new DOMXPath($dom);
$matches = $xpath->query('//td[.="Wind Speed:"]/following-sibling::td');

foreach($matches as $match) {
    echo $match->nodeValue."\n\n";
}
于 2012-06-23T18:05:38.233 回答