如何在<;td>;使用正则表达式和Php的元素

如何在<;td>;使用正则表达式和Php的元素,php,html,regex,Php,Html,Regex,如何使用PHP+Regex从这个html代码中获得“85英里/小时”? 我想不出正确的正则表达式 这是密码 洛杉矶 风速: 时速85英里 雪荷载: 0 psf (简化示例)链接到关于不使用正则表达式解析HTML的帖子的第一条评论很重要。也就是说,试试类似的方法。这应该可以让您开始使用PHP遍历DOM。您已经听说过不使用正则表达式来完成此任务,所以我不谈论这个问题。 让我们在这里试试。也许不是理想的解决方案,但可能对您有效 <?php $data = 'your t

如何使用PHP+Regex从这个html代码中获得“85英里/小时”? 我想不出正确的正则表达式 这是密码

洛杉矶 风速: 时速85英里 雪荷载: 0 psf
(简化示例)

链接到关于不使用正则表达式解析HTML的帖子的第一条评论很重要。也就是说,试试类似的方法。这应该可以让您开始使用PHP遍历DOM。

您已经听说过不使用正则表达式来完成此任务,所以我不谈论这个问题。 让我们在这里试试。也许不是理想的解决方案,但可能对您有效

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

要扩展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";
}

我认为这是相关的:它不会作为数组给出任何结果。我将分享我所尝试过的一切。您的示例(格式错误)标记是您无法用正则表达式可靠地解析HTML的一个关键原因。@tskuzzy zalgo的事情很有趣,但对于一个可能从未听说过DOM解析并且不明白为什么他们会被取笑的没有经验的用户来说,这完全没有帮助。这个链接真的需要一个关于更好的解析器选项的入门的配套链接。@octern可能是这样的
<?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";
}