用正则表达式得到某个div标签内部的div标签中的内容

我要从<divid="right_news_content"class="float_l"><DIV>各相关老师:</DIV></div>里面得到"<DIV>各相关老师:... 我要从<div id="right_news_content" class="float_l"> <DIV>各相关老师:</DIV></div>里面得到 "<DIV>各相关老师:</DIV>"正则表达式该怎么写? 如果是想要得到"各相关老师:"那么我知道正则是 <DIV>(.*)</DIV> 但是要取出某个div直接嵌套在里面的div内容 就不知道怎么写了 求大神解答 展开
 我来答
againinput4
推荐于2018-03-07 · TA获得超过2407个赞
知道大有可为答主
回答量:1446
采纳率:70%
帮助的人:620万
展开全部
你这问题,和之前某人的一样。
先说结论:极度不推荐你使用这样的正则去从html中提取相关内容。

原因:
除非,你确保你的代码,使用正则表达式去匹配html内容的代码,所需处理的html是很简单的,内容很少的,嵌套很少的,否则,稍微复杂点的html代码,N多标签,甚至本身html就是不完整的,标签有误的。那么通过写正则表达式去处理的话,就是极其繁琐,效率比较低的。

比较好的做法是:
使用相关的,专门解析html的库去处理html

比如Python中,使用BeautifulSoup:
【总结】Python的第三方库BeautifulSoup的使用心得

其他语言,也有其他对应的处理html的库。

单独对于你这个,特定的,相对比较简单的,只有一级内部嵌套的div的写法,可以写成:
Python

"<div[^>]+>.+?<div>(.+?)</div></div>", re.I
其中re.I表示不区分大小写

PHP/Perl等
#<div[^>]+>.+?<div>(.+?)</div></div>#i

/<div[^>]+>.+?<div>(.+?)<\/div><\/div>/i

总之,还是不推荐用正则处理复杂的html。

刚专门给你写了个帖子,自己去看吧:
【整理】关于用正则表达式处理html代码方面的建议

(此处不能贴地址,请用google搜标题,即可找到帖子地址)
985635397
2012-11-20 · 超过14用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:20.8万
展开全部
var strs='<div id="right_news_content" class="float_l"> <DIV>各相关老师:</DIV></div>';
var ex=/class=\"float\_l\">(.*?<\/DIV>)/;
alert(ex.exec(strs)[1]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式