如下面的代码所示,它获取所有具有 10 位数字的匹配项,并且效果很好。但是,我只需要过滤此标签内的匹配项
<tr class="main_row pc">
其他数字在此标签内(pc 更改为 dc)
<tr class="main_row dc">
.
$html= file_get_contents('...');
$matches = array();
preg_match_all('/'d{10}/', $html, $matches);
foreach ($matches[1] as $match) {
echo $match.'<br>';
}
如何筛选数字?
更新这是 HTML。我想得到6914576304,但因为有这个标签<tr class="main_row pc">
<tr class="main_row pc">
<td class="details">
<a href="./view/4135660/"><span class="p_t">Fiat Cinquecento </span></a>
<a class="info" href="./view/4135660/">(Info)</a><br>
<div class="attribs">16345, <span class="p_l">Blue</span>, Phone 6914576304
</div>
</td>
</tr>
如何代替/'d{10}/
,做:
/<tr class="main_row pc">'d{10}<'/tr>/
你也可以简化它,但我不知道这个数字是否对你来说很重要,这个数字是否在两个类的tr
内。下面是一些示例代码及其输出:
<?php
$data = '<tr class="main_row pc">0123456789</tr><tr class="main_row pc">1123456789</tr><tr class="main_row dc">2123456789</tr>';
$matches = array();
preg_match_all('/<tr class="main_row pc">'d{10}<'/tr>/', $data, $matches);
print_r($matches);
?>
输出:
Array
(
[0] => Array
(
[0] => <tr class="main_row pc">0123456789</tr>
[1] => <tr class="main_row pc">1123456789</tr>
)
)
前两个匹配,最后一个是不同的类,被忽略。