这个正则表达式如何写啊?

nenuxjms 2008-04-02 12:34:26
我已经把如下的内容存放到了变量$content中:
<a href="495662.html"title="更新时间:2008-3-5 2:28:00
更新字数:3348">第一章 我没有姓 </a>

<a href="495663.html"title="更新时间:2008-3-5 2:28:00
更新字数:3483">第二章 有贼胆没贼心 </a>

<a href="495664.html"title="更新时间:2008-3-5 2:28:00
更新字数:3052">第三章 一顾倾人城 </a>

<a href="495665.html"title="更新时间:2008-3-5 2:28:00
更新字数:2721">第四章 蛰伏的血性 </a>

<a href="495666.html"title="更新时间:2008-3-5 2:28:00
更新字数:3118">第五章 扮猪吃老虎 </a>


其实中间还有很多其他内容,只是上面这样类似的是有规则的,要在里面提取需要的内容
<a href="XXX.html"title="更新时间:XXX
更新字数:XXX">XXX </a>

各个有规则的部分,其他完全相同,只有XXX不同,我怎么样分组提取.html前XXX(即章节编号),以及最后一个 </a>前面的XXX,(即章节名称),因为他们是对应的,所以我想对应的显示出来,我查过资料,说要用preg_match_all函数和正则规则,但是刚接触,有难度,请高手指点一下啊。
...全文
106 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sunfan1010 2008-04-03
[Quote=引用 2 楼 JlinShu 的回复:]
<?php
header("Content-Type:text/html;charset=utf-8");

$content = ' <a href="495662.html"title="更新时间:2008-3-5 2:28:00
更新字数:3348">第一章 我没有姓 </a>

<a href="495663.html"title="更新时间:2008-3-5 2:28:00
更新字数:3483">第二章 有贼胆没贼心 </a>

<a href="495664.html"title="更新时间:2008-3-5 2:28:00
更新字数:3052">第三章 一顾倾人城 </a>

<a href="4956…
[/Quote]
是这样滴,楼下没有必要发啦.
回复
striker_un 2008-04-02
呵呵,正则已是廉价技术了,经常搞搞抓取,搞搞替换什么的。
回复
playboy001 2008-04-02
"/ <a.*?href=\"(.*?)\.html\".*?>(.*?) <\/a>/is"
这个正在表达式配置的字符串举个例子,让小弟学习一下
回复
JlinShu 2008-04-02
你是想用来采集吧?
回复
JlinShu 2008-04-02
<?php
header("Content-Type:text/html;charset=utf-8");

$content = '<a href="495662.html"title="更新时间:2008-3-5 2:28:00
更新字数:3348">第一章 我没有姓 </a>

<a href="495663.html"title="更新时间:2008-3-5 2:28:00
更新字数:3483">第二章 有贼胆没贼心 </a>

<a href="495664.html"title="更新时间:2008-3-5 2:28:00
更新字数:3052">第三章 一顾倾人城 </a>

<a href="495665.html"title="更新时间:2008-3-5 2:28:00
更新字数:2721">第四章 蛰伏的血性 </a>

<a href="495666.html"title="更新时间:2008-3-5 2:28:00
更新字数:3118">第五章 扮猪吃老虎 </a>';

preg_match_all("/<a.*?href=\"(.*?)\.html\".*?>(.*?)<\/a>/is",$content,$pArr);

$a1 = $pArr[1];
$a2 = $pArr[2];

for($i=0;$i<count($a1);$i++)
{
echo $a1[$i].'<br>';
}

echo '-----------------------------------------<br>';

for($i=0;$i<count($a2);$i++)
{
echo $a2[$i].'<br>';
}
?>
回复
zmouki 2008-04-02
不知道你要的是不是这样的效果?

<?php
header("Content-Type:text/html;charset:UTF-8");
$content='<a href="495662.html"title="更新时间:2008-3-5 2:28:00 更新字数:3348">hello world</a>';
$newcontent=preg_match_all("|<[^>]+>(.*)</[^>]+>|",'<a href="495662.html"title="更新时间:2008-3-5 2:28:00 更新字数:3348">hello world</a>',$out);
echo $out[1][0];
?>
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-04-02 12:34
社区公告
暂无公告