正则表达式提取表格tr行

sindel 2010-03-26 01:22:37
我有这么一段html代码:
<table border="0" cellpadding="0" cellspacing="0" width="737">
<tbody>
<tr>
<td><img alt="" src="http://www.yaoyao001.com/dgimgs/template/qjnew/ms3_05.gif" height="189" width="737"></td>
</tr>
</tbody>
</table>
<table border="1" bordercolor="#0099ff" cellpadding="0" cellspacing="1" width="670">
<tbody>
<tr>
<td align="middle" bgcolor="#b6d1e2" nowrap="nowrap" height="38"> 码数 </td>
<td align="middle" bgcolor="#b6d1e2" nowrap="nowrap" width="80">参考年龄</td>
<td align="middle" bgcolor="#b6d1e2" nowrap="nowrap" width="80">参考身高(cm)</td>
<td align="middle" bgcolor="#b6d1e2">衣长(cm)</td>
<td align="middle" bgcolor="#b6d1e2">胸围(cm)</td>
<td align="middle" bgcolor="#b6d1e2">袖长(cm)</td>
<td align="middle" bgcolor="#b6d1e2">裤长(cm)</td>
<td align="middle" bgcolor="#b6d1e2">腰围(cm)</td>
<td align="middle" bgcolor="#b6d1e2" width="80">臀围(cm)</td>
<td align="middle" bgcolor="#b6d1e2">裆深(cm)</td>
<td align="middle" bgcolor="#b6d1e2" width="100">备注</td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">52</td>
<td align="left" nowrap="nowrap">新生儿</td>
<td align="left" nowrap="nowrap">无固定</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">59</td>
<td align="left" nowrap="nowrap">0-3个月</td>
<td align="left" nowrap="nowrap">45-55CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">66</td>
<td align="left" nowrap="nowrap">3-6个月</td>
<td align="left" nowrap="nowrap">55-65CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">73</td>
<td align="left" nowrap="nowrap">6-12个月</td>
<td align="left" nowrap="nowrap">65-75CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">80</td>
<td align="left" nowrap="nowrap">12-18个月</td>
<td align="left" nowrap="nowrap">75-85CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">90</td>
<td align="left" nowrap="nowrap">18-24个月</td>
<td align="left" nowrap="nowrap">85-95CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">100</td>
<td align="left" nowrap="nowrap">24-36个月</td>
<td align="left" nowrap="nowrap">95-105CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">110</td>
<td align="left" nowrap="nowrap">36-48个月</td>
<td align="left" nowrap="nowrap">105-115CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> hidden</td>
</tr>
</tbody>
</table>
<p><span><font size="2"><font color="#000000"><strong>尺码:(手工实际测量,误差2CM内属正常)</strong></font></font></span></p>
<p><span><font size="2"><font color="#000000"><strong>尺码:(手工实际测量,误差2CM内属正常)</strong></font></font></span></p>



要求通过正则提取 包含 hidden 关键字 的 tr行
就是把 下面这段提取出来:
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">110</td>
<td align="left" nowrap="nowrap">36-48个月</td>
<td align="left" nowrap="nowrap">105-115CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> hidden</td>
</tr>

求可提取的正则表达式

最好有preg_match_all 或者 preg_match 函数的代码测试,谢谢


...全文
692 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
aolongxue 2012-08-29
  • 打赏
  • 举报
回复
这个真心要留名!!!
blizzf99 2010-08-30
  • 打赏
  • 举报
回复
這麼多高手,留名學習。

qtffly 2010-08-29
  • 打赏
  • 举报
回复

用jquery也能实现的
$("table:eq(1) tbody tr:contains(hidden)").html()
  • 打赏
  • 举报
回复
用JS啊, var trArr = document.getElementsByTagName('tr');
green945 2010-08-27
  • 打赏
  • 举报
回复
非常感谢mu_rain(木雨)
mu_rain 2010-03-30
  • 打赏
  • 举报
回复
正则学完基础后,如果要进一步。要了解点东西,
一 贪婪
二 正向预判[有的叫做环视] 相当于是给匹配的字符再加一层条件.
三 回代与递归回代

你这是典型的贪婪问题,
后面加一个 U 修正符就好了。


按道理讲
/<tr>([\d\D]*)?<\/tr>/i 等效于 /<tr>([\d\D]*)<\/tr>/iU
我通常的个人习惯是用后者。
sindel 2010-03-30
  • 打赏
  • 举报
回复
谢谢各位,问题我已经用了一个临时的方法暂时应付了,各位写的正则我有空再研究,总结下
mu_rain 2010-03-29
  • 打赏
  • 举报
回复


<?php
//忘记加<?php ?>了,报歉。
$data = "我有这么一段html代码:
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"737\">
<tbody>
<tr>
<td><img alt=\"\" src=\"http://www.yaoyao001.com/dgimgs/template/qjnew/ms3_05.gif\" height=\"189\" width=\"737\"></td>
</tr>
</tbody>
</table>
<table border=\"1\" bordercolor=\"#0099ff\" cellpadding=\"0\" cellspacing=\"1\" width=\"670\">
<tbody>
<tr>
<td align=\"middle\" bgcolor=\"#b6d1e2\" nowrap=\"nowrap\" height=\"38\"> 码数 </td>
<td align=\"middle\" bgcolor=\"#b6d1e2\" nowrap=\"nowrap\" width=\"80\">参考年龄</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\" nowrap=\"nowrap\" width=\"80\">参考身高(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">衣长(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">胸围(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">袖长(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">裤长(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">腰围(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\" width=\"80\">臀围(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">裆深(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\" width=\"100\">备注</td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">52</td>
<td align=\"left\" nowrap=\"nowrap\">新生儿</td>
<td align=\"left\" nowrap=\"nowrap\">无固定</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">59</td>
<td align=\"left\" nowrap=\"nowrap\">0-3个月</td>
<td align=\"left\" nowrap=\"nowrap\">45-55CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">66</td>
<td align=\"left\" nowrap=\"nowrap\">3-6个月</td>
<td align=\"left\" nowrap=\"nowrap\">55-65CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">73</td>
<td align=\"left\" nowrap=\"nowrap\">6-12个月</td>
<td align=\"left\" nowrap=\"nowrap\">65-75CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">80</td>
<td align=\"left\" nowrap=\"nowrap\">12-18个月</td>
<td align=\"left\" nowrap=\"nowrap\">75-85CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">90</td>
<td align=\"left\" nowrap=\"nowrap\">18-24个月</td>
<td align=\"left\" nowrap=\"nowrap\">85-95CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">100</td>
<td align=\"left\" nowrap=\"nowrap\">24-36个月</td>
<td align=\"left\" nowrap=\"nowrap\">95-105CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">110</td>
<td align=\"left\" nowrap=\"nowrap\">36-48个月</td>
<td align=\"left\" nowrap=\"nowrap\">105-115CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> hidden</td>
</tr>
</tbody>";


preg_match_all("/<tr>([\d\D]*)<\/tr>/iU",$data,$match);
var_dump($match);
?>
mu_rain 2010-03-29
  • 打赏
  • 举报
回复
请 1看代码2复制粘贴代码3运行代码4给分!


$data = "我有这么一段html代码:
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"737\">
<tbody>
<tr>
<td><img alt=\"\" src=\"http://www.yaoyao001.com/dgimgs/template/qjnew/ms3_05.gif\" height=\"189\" width=\"737\"></td>
</tr>
</tbody>
</table>
<table border=\"1\" bordercolor=\"#0099ff\" cellpadding=\"0\" cellspacing=\"1\" width=\"670\">
<tbody>
<tr>
<td align=\"middle\" bgcolor=\"#b6d1e2\" nowrap=\"nowrap\" height=\"38\"> 码数 </td>
<td align=\"middle\" bgcolor=\"#b6d1e2\" nowrap=\"nowrap\" width=\"80\">参考年龄</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\" nowrap=\"nowrap\" width=\"80\">参考身高(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">衣长(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">胸围(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">袖长(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">裤长(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">腰围(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\" width=\"80\">臀围(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\">裆深(cm)</td>
<td align=\"middle\" bgcolor=\"#b6d1e2\" width=\"100\">备注</td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">52</td>
<td align=\"left\" nowrap=\"nowrap\">新生儿</td>
<td align=\"left\" nowrap=\"nowrap\">无固定</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">59</td>
<td align=\"left\" nowrap=\"nowrap\">0-3个月</td>
<td align=\"left\" nowrap=\"nowrap\">45-55CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">66</td>
<td align=\"left\" nowrap=\"nowrap\">3-6个月</td>
<td align=\"left\" nowrap=\"nowrap\">55-65CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">73</td>
<td align=\"left\" nowrap=\"nowrap\">6-12个月</td>
<td align=\"left\" nowrap=\"nowrap\">65-75CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">80</td>
<td align=\"left\" nowrap=\"nowrap\">12-18个月</td>
<td align=\"left\" nowrap=\"nowrap\">75-85CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">90</td>
<td align=\"left\" nowrap=\"nowrap\">18-24个月</td>
<td align=\"left\" nowrap=\"nowrap\">85-95CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">100</td>
<td align=\"left\" nowrap=\"nowrap\">24-36个月</td>
<td align=\"left\" nowrap=\"nowrap\">95-105CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> </td>
</tr>
<tr>
<td bgcolor=\"#ffffff\" nowrap=\"nowrap\" height=\"25\">110</td>
<td align=\"left\" nowrap=\"nowrap\">36-48个月</td>
<td align=\"left\" nowrap=\"nowrap\">105-115CM</td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"middle\" nowrap=\"nowrap\"> </td>
<td align=\"left\"> hidden</td>
</tr>
</tbody>";


preg_match_all("/<tr>([\d\D]*)<\/tr>/iU",$data,$match); //注意U的用法,
var_dump($match);
uuq 2010-03-29
  • 打赏
  • 举报
回复
楼上我正准备写一个正则集合类
将会把你的正则放上去

class preg {
/*
*正则表达式提取表格tr行
*csdn 网友 挪威的森林
*/
static function match_tr($content) {
Return preg_match_all('/<tr.*?>[\r\n]{0,2}(<td.*?>.*?<\/td>[\r\n]{0,2})*<td.*?>.*?hidden.*?<\/td>[\r\n]{0,2}(<td.*?>.*?<\/td>[\r\n]{0,2})*<\/tr>/i',$content,$matchs)?$matchs:null;
}
heguangyu5 2010-03-27
  • 打赏
  • 举报
回复
<?php
$html = file_get_contents('table.html');
$pattern = '/<tr>\s(<td.*?<\/td>\s)*(<td.*?hidden<\/td>\s)+<\/tr>/';
preg_match_all($pattern, $html, $matches);
print_r($matches[0]);
?>
ghostwuboy 2010-03-27
  • 打赏
  • 举报
回复

<?php
$sContent = file_get_contents("table.html");

function TraversalContent($sContent, $iLastIndex) {

static $sBackContent;$sContentAll;
$sContentAll = $sContent;
$iStartIndex = stripos($sContent, '<tr>', $iLastIndex);
$iLastIndex = stripos($sContent, '</tr>', $iStartIndex);
$sTempContent = substr($sContent, $iStartIndex, $iLastIndex-$iStartIndex+1+strlen("</tr>"));

if (!(stripos($sTempContent, "hidden") === false)) {

$sBackContent = $sTempContent;
echo $sBackContent;
return $sBackContent;
}

TraversalContent($sContentAll, $iLastIndex);
}
TraversalContent($sContent, 0);
?>
programbin 2010-03-27
  • 打赏
  • 举报
回复
$pattern = '/<tr.*?>[\r\n]{0,2}(<td.*?>.*?<\/td>[\r\n]{0,2})*<td.*?>.*?hidden.*?<\/td>[\r\n]{0,2}(<td.*?>.*?<\/td>[\r\n]{0,2})*<\/tr>/i';

preg_match_all($pattern, $table, $matches);

print_r($matches[0]);


又完善了一下.
ghostwuboy 2010-03-27
  • 打赏
  • 举报
回复
1,5楼错,4,6,7楼都正确,6楼最佳
ghostwuboy 2010-03-27
  • 打赏
  • 举报
回复

$html = file_get_contents("table.html");
$pattern = "/<tr>(\s*<td((\s*\w*\s*=\s*(\"[^>](.*?)\"|\'[^>](.*?)\'))?)+\s*>.*?<\/td>\s*)*<\/tr>/i";
preg_match_all($pattern, $html, $matches);
print_r($matches[0][9]);

programbin 2010-03-27
  • 打赏
  • 举报
回复
$table =<<<TABLE
<table border="0" cellpadding="0" cellspacing="0" width="737">
<tbody>
<tr>
<td><img alt="" src="http://www.yaoyao001.com/dgimgs/template/qjnew/ms3_05.gif" height="189" width="737"></td>
</tr>
</tbody>
</table>
<table border="1" bordercolor="#0099ff" cellpadding="0" cellspacing="1" width="670">
<tbody>
<tr>
<td align="middle" bgcolor="#b6d1e2" nowrap="nowrap" height="38"> 码数 </td>
<td align="middle" bgcolor="#b6d1e2" nowrap="nowrap" width="80">参考年龄</td>
<td align="middle" bgcolor="#b6d1e2" nowrap="nowrap" width="80">参考身高(cm)</td>
<td align="middle" bgcolor="#b6d1e2">衣长(cm)</td>
<td align="middle" bgcolor="#b6d1e2">胸围(cm)</td>
<td align="middle" bgcolor="#b6d1e2">袖长(cm)</td>
<td align="middle" bgcolor="#b6d1e2">裤长(cm)</td>
<td align="middle" bgcolor="#b6d1e2">腰围(cm)</td>
<td align="middle" bgcolor="#b6d1e2" width="80">臀围(cm)</td>
<td align="middle" bgcolor="#b6d1e2">裆深(cm)</td>
<td align="middle" bgcolor="#b6d1e2" width="100">备注</td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">52</td>
<td align="left" nowrap="nowrap">新生儿</td>
<td align="left" nowrap="nowrap">无固定</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">59</td>
<td align="left" nowrap="nowrap">0-3个月</td>
<td align="left" nowrap="nowrap">45-55CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">66</td>
<td align="left" nowrap="nowrap">3-6个月</td>
<td align="left" nowrap="nowrap">55-65CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">73</td>
<td align="left" nowrap="nowrap">6-12个月</td>
<td align="left" nowrap="nowrap">65-75CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">80</td>
<td align="left" nowrap="nowrap">12-18个月</td>
<td align="left" nowrap="nowrap">75-85CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">90</td>
<td align="left" nowrap="nowrap">18-24个月</td>
<td align="left" nowrap="nowrap">85-95CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">100</td>
<td align="left" nowrap="nowrap">24-36个月</td>
<td align="left" nowrap="nowrap">95-105CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> </td>
</tr>
<tr>
<td bgcolor="#ffffff" nowrap="nowrap" height="25">110</td>
<td align="left" nowrap="nowrap">36-48个月</td>
<td align="left" nowrap="nowrap">105-115CM</td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="middle" nowrap="nowrap"> </td>
<td align="left"> hidden</td>
</tr>
</tbody>
</table>
<p><span><font size="2"><font color="#000000"><strong>尺码:(手工实际测量,误差2CM内属正常)</strong>& lt;/font></font></span></p>
<p><span><font size="2"><font color="#000000"><strong>尺码:(手工实际测量,误差2CM内属正常)</strong>& lt;/font></font></span></p>
TABLE;


$pattern = '/<tr.*?>([\r\n]{0,2}<td.*?>.*?<\/td>)*([\r\n]{0,2})?<td.*?>.*?hidden.*?<\/td>[\r\n]{0,2}<\/tr>/i';

preg_match_all($pattern, $table, $matches);

print_r($matches[0]);
lonelyriver 2010-03-26
  • 打赏
  • 举报
回复
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
骄傲青蛙 2010-03-26
  • 打赏
  • 举报
回复
上楼的不正确,这样会从第一个<tr>匹配到最后一个</tr>,先标记一下再弄。
guangpigu 2010-03-26
  • 打赏
  • 举报
回复
preg_match_all('/<tr[\w\W]*?hidden[\w\W]*?<\/tr>/i',$data,$e);

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧