用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2780|回复: 2
收起左侧

[讨论/交流] php 正则表达式规则一疑问

[复制链接]
发表于 2011-8-8 08:59:58 | 显示全部楼层 |阅读模式
本帖最后由 iranwang 于 2011-8-8 09:00 编辑

才写一个网页采集程序的时候发现一个问题
代码如下
PHP复制代码
 
<?php
header ( 'Content-Type:text/html;charset=utf-8' );
$html = file_get_contents ( "http://roll.games.sina.com.cn/news_list/default/djyx-xw/index.shtml" );
$html = iconv ( "gbk", "utf-8", $html );
//$html = preg_replace ( "/([\n]+)/", ' ', $html );
preg_match_all ( "/<ul class=\"list_009\">(.*)<\/ul>/Ui", $html, $links );
print_r ( $links );
?>
 
复制代码

这样子代码是无法匹配到内容了  但是在将上面一行的注释去掉 (也就是吧换行符去除) 就可以匹配掉

这个是为什么呢???
疑问??????????????????????????


发表于 2011-8-8 09:06:01 | 显示全部楼层
就说明你的.匹配不了换行呗
 楼主| 发表于 2011-8-8 10:08:46 | 显示全部楼层
本帖最后由 iranwang 于 2011-8-8 10:09 编辑
jeongee 发表于 2011-8-8 09:06
就说明你的.匹配不了换行呗

可是“.”是匹配任何字符的呀

如果“.”不能匹配换行  那么在不去除换行符的同时怎么写这个匹配规则呀
preg_match_all ( "/<ul class=\"list_009\">([\n.]*)<\/ul>/Ui", $html, $links );  这样也不对呀


求解  求解。。。。。。。。。。。。。。。。

本版积分规则