正则表达式匹配网页

有如下网页内容,<\/br><\/br>1、学号名字年龄0025李华天16114<\/br><\/br>考试1语文数学<\/br>(1)月考8590<\/br>(2)期中... 有如下网页内容,

<\/br><\/br>1、学号 名字 年龄 0025 李华天 161 14 <\/br><\/br> 考试1 语文 数学 <\/br>(1)月考 85 90 <\/br>(2)期中考试 83 85<\/br>(3)期末考试 80 78<\/br><\/br>考试2 语文均分 数学均分 <\/br>(1)期中考试 80 81<\/br>(2)期末考试 70 75<\/br><\/br> 2、学号 名字 身高 年龄 0026 秦雪涛 14.......

想得到的结果:
学号 考试成绩1 语文 数学 考试成绩2 语文均分 数学均分
0025 月考 85 90 期中考试 80 81
0025 期中考试 83 85 期末考试 70 75
0025 期末考试 80 78

其中考试1和考试2中(1),(2),(3)的条数不一定,可能还有(4),(5),也可能只有(1),(2);最后'.......'后面的与前面一段内容都一致,都是这种格式
展开
 我来答
司马刀剑
高粉答主

2018-03-16 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7569万
展开全部
如果你要<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的 <li></li>标签中的内容,可以用preg_match_all

//提取所有代码
$pattern = '/<div class="nav" monkey="nav">(.+?)<div class="head-ad">/is';
preg_match($pattern, $string, $match);
//$match[0] 即为<div class="nav" monkey="nav">和<div class="head-ad">之间的所有源码
echo $match[0];

//然后再提取<li></li>之间的内容
$pattern = '/<li.*?>(.+?)<\/li>/is';

preg_match_all($pattern, $match[0], $results);
$new_arr=array_unique($results[0]);

foreach($new_arr as $kkk){
echo $kkk;

}
不想起名字了99
2018-01-24 · TA获得超过1695个赞
知道大有可为答主
回答量:2708
采纳率:76%
帮助的人:728万
展开全部
这个用正则不是正途,应该用XML对象来分析
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式