iranwang 发表于 2011-8-8 08:59:58

php 正则表达式规则一疑问

本帖最后由 iranwang 于 2011-8-8 09:00 编辑

才写一个网页采集程序的时候发现一个问题
代码如下

<?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 );
?>

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

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


jeongee 发表于 2011-8-8 09:06:01

就说明你的.匹配不了换行呗

iranwang 发表于 2011-8-8 10:08:46

本帖最后由 iranwang 于 2011-8-8 10:09 编辑

jeongee 发表于 2011-8-8 09:06 static/image/common/back.gif
就说明你的.匹配不了换行呗
可是“.”是匹配任何字符的呀

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


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

页: [1]
查看完整版本: php 正则表达式规则一疑问