求个简单的PHP正则匹配。

standford 2013-08-29 04:06:02
 <ul class="main_con">

<li>
<span class="kind"><a href="http://book.zongheng.com/store/c21/c1210/b9/u0/p1/v9/s9/t0/ALL.html" title="动漫同人" target="_blank">[动漫同人]</a></span>
<span class="chap">

<a href="http://book.zongheng.com/book/299149.html" class="fs14" title="宠物小精灵黑白2" target="_blank">宠物小精灵黑...</a>


<a href="http://book.zongheng.com/chapter/299149/5188596.html" title="正文 第二十二章 暗涌!" target="_blank">正文 第二十二...</a>



</span>
<span class="number">
2826/18/0
</span>
<span class="author"><a href="http://home.zongheng.com/show/userInfo/10996625.html" title="一鼎" target="_blank">一鼎</a></span>
<span class="time">13-08-29 14:55</span>
</li>

<li>
<span class="kind"><a href="http://book.zongheng.com/store/c31/c3106/b9/u0/p1/v9/s9/t0/ALL.html" title="青春校园" target="_blank">[青春校园]</a></span>
<span class="chap">

<a href="http://www.mmzh.com/book/280776.html" class="fs14" title="那年雪花在飘,谁在忧伤?" target="_blank">那年雪花在飘...</a>


<a href="http://book.zongheng.com/chapter/280776/5188594.html" title="正文 真诚璃茉与夜落雪的暗斗" target="_blank">正文 真诚璃茉...</a>



</span>
<span class="number">
202/5/0
</span>
<span class="author"><a href="http://home.zongheng.com/show/userInfo/9854181.html" title="蕾娜莎" target="_blank">蕾娜莎</a></span>
<span class="time">13-08-29 14:55</span>
</li>


以上代码中我只想要<a href="(.*)" class="fs14" title="(.*)" target="_blank">(.*)</a>和这个格式一样的URL。这正则怎么写。






以下是我写的,
$html=file_get_contents($setting['book_url']);
$k='/<ul class="main_con">';
$k.='(.*)<a href="http:\/\/book.zongheng.com\/book\/(.*)" class(.*)>(.*)<\/a>(.*)';
$k.='<\/ul>/isU';
preg_match_all($k,$html,$rs);
没有匹配到地址
...全文
182 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lei1314lei 2013-08-31
  • 打赏
  • 举报
回复
test.php
<?php
$str=<<<html
<ul class="main_con">

<li>
<span class="kind"><a href="http://book.zongheng.com/store/c21/c1210/b9/u0/p1/v9/s9/t0/ALL.html" title="动漫同人" target="_blank">[动漫同人]</a></span>
<span class="chap">

<a href="http://book.zongheng.com/book/299149.html" class="fs14" title="宠物小精灵黑白2" target="_blank">宠物小精灵黑...</a>


<a href="http://book.zongheng.com/chapter/299149/5188596.html" title="正文 第二十二章 暗涌!" target="_blank">正文 第二十二...</a>



</span>
<span class="number">
2826/18/0
</span>
<span class="author"><a href="http://home.zongheng.com/show/userInfo/10996625.html" title="一鼎" target="_blank">一鼎</a></span>
<span class="time">13-08-29 14:55</span>
</li>

<li>
<span class="kind"><a href="http://book.zongheng.com/store/c31/c3106/b9/u0/p1/v9/s9/t0/ALL.html" title="青春校园" target="_blank">[青春校园]</a></span>
<span class="chap">

<a href="http://www.mmzh.com/book/280776.html" class="fs14" title="那年雪花在飘,谁在忧伤?" target="_blank">那年雪花在飘...</a>


<a href="http://book.zongheng.com/chapter/280776/5188594.html" title="正文 真诚璃茉与夜落雪的暗斗" target="_blank">正文 真诚璃茉...</a>



</span>
<span class="number">
202/5/0
</span>
<span class="author"><a href="http://home.zongheng.com/show/userInfo/9854181.html" title="蕾娜莎" target="_blank">蕾娜莎</a></span>
<span class="time">13-08-29 14:55</span>
</li>

html;

$pattern="/<a\s+href=(.+)\s+class=.fs14.\s+title=.+\s+target=._blank/";

preg_match_all($pattern,$str,$matches);
var_dump($matches[1]);
?>
$matches[1]就是你要的url数组

「已注销」 2013-08-31
  • 打赏
  • 举报
回复
#<a href="(.*)" class="fs14" title="(.*)" target="_blank">(.*)</a>#
lei1314lei 2013-08-30
  • 打赏
  • 举报
回复
引用 楼主 standford 的回复:
 <ul class="main_con">
                    
                    <li>
                        <span class="kind"><a href="http://book.zongheng.com/store/c21/c1210/b9/u0/p1/v9/s9/t0/ALL.html" title="动漫同人" target="_blank">[动漫同人]</a></span>
                        <span class="chap">
                            
                                    <a href="http://book.zongheng.com/book/299149.html" class="fs14" title="宠物小精灵黑白2" target="_blank">宠物小精灵黑...</a>
                                    
                                    
                                        <a href="http://book.zongheng.com/chapter/299149/5188596.html" title="正文 第二十二章  暗涌!" target="_blank">正文 第二十二...</a>
                                    
                                
                            
                        </span>
                        <span class="number">
                            2826/18/0
                        </span>
                        <span class="author"><a href="http://home.zongheng.com/show/userInfo/10996625.html" title="一鼎" target="_blank">一鼎</a></span>
                        <span class="time">13-08-29 14:55</span>
                    </li>
                    
                    <li>
                        <span class="kind"><a href="http://book.zongheng.com/store/c31/c3106/b9/u0/p1/v9/s9/t0/ALL.html" title="青春校园" target="_blank">[青春校园]</a></span>
                        <span class="chap">
                            
                                    <a href="http://www.mmzh.com/book/280776.html" class="fs14" title="那年雪花在飘,谁在忧伤?" target="_blank">那年雪花在飘...</a>
                                    
                                    
                                        <a href="http://book.zongheng.com/chapter/280776/5188594.html" title="正文 真诚璃茉与夜落雪的暗斗" target="_blank">正文 真诚璃茉...</a>
                                    
                                
                            
                        </span>
                        <span class="number">
                            202/5/0
                        </span>
                        <span class="author"><a href="http://home.zongheng.com/show/userInfo/9854181.html" title="蕾娜莎" target="_blank">蕾娜莎</a></span>
                        <span class="time">13-08-29 14:55</span>
                    </li>
以上代码中我只想要<a href="(.*)" class="fs14" title="(.*)" target="_blank">(.*)</a>和这个格式一样的URL。这正则怎么写。 以下是我写的, $html=file_get_contents($setting['book_url']); $k='/<ul class="main_con">'; $k.='(.*)<a href="http:\/\/book.zongheng.com\/book\/(.*)" class(.*)>(.*)<\/a>(.*)'; $k.='<\/ul>/isU'; preg_match_all($k,$html,$rs); 没有匹配到地址
那是当然啦你的正则表达式是‘/<ul class="main_con">(.*)<a href="http:\/\/book.zongheng.com\/book\/(.*)" class(.*)>(.*)<\/a>(.*)<\/ul>/isU’ <ul class="main_con">之后的.*不匹配换行符,而html代码中<ul class="main_con">后面有若干空格还有换行符 要是你想获取class="main_con"的ul里面的<a> </a>的话建议你用jquery处理,它提供了多种选择器,类选择器,属性选择器...
一起混吧 2013-08-29
  • 打赏
  • 举报
回复
那直接写就是了 #<a href="(.*)" class="fs14" title="(.*)" target="_blank">(.*)</a>#
  • 打赏
  • 举报
回复
preg_match_all('#<a href=\"(.*?)\" class=\"fs14\" title=\"(.*?)\" target=\"_blank\">(.*?)<\/a>#i',$html,$rs);

21,887

社区成员

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

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