正则表达式,截取字符串
请问一段html代码,我要截取所有<a href=>……</a>这段字符,请问怎么做,我对正则不太熟悉 问题点数:20、回复次数:2Top
1 楼onmoon(sphinx)回复于 2005-02-02 19:52:46 得分 20
关键语句:
@(.*?)<a\s([^>]*?)href=([\'\"\s]?)([^>\'\"\s]+)([\'\"\s]?)([^>]*?)>(.+?)</a>(.*)@is
附带一个获取页面所有链接的例子:
<?
$f=file('http://duan.onmoon.com');
$str="";
while(list($line_num,$line)=each($f))
{
$str.=$line;
}
$count=0;
$ptn="@(.*?)<a\s([^>]*?)href=([\'\"\s]?)([^>\'\"\s]+)([\'\"\s]?)([^>]*?)>(.+?)</a>(.*)@is";
while(preg_match($ptn,$str,$reg))
{
echo "-----------------------------------------------------------------------------------";
$count++;
echo "〖".$reg[4]."〗<br/>";
echo $count."【".$reg[7]."】<br/>";
$str=$reg[1].$reg[8];
}
?>
Top
2 楼yunfeifan(云飞凡)回复于 2005-02-03 11:55:22 得分 0
to onmoon(sphinx)
你的结果好像不对,连怎么那么多<td>什么的?
我只需要的是<a 开始和 a>结束的内容。Top




