用正则表达式得到某个div标签内部的div标签中的内容
答案:4 悬赏:10 手机版
解决时间 2021-03-10 13:57
- 提问者网友:欲劫无渡
- 2021-03-09 13:27
我要从 各相关老师:里面得到 "各相关老师:"正则表达式该怎么写? 如果是想要得到"各相关老师:"那么我知道正则是 (.*) 但是要取出某个div直接嵌套在里面的div内容 就不知道怎么写了 求大神解答
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-03-09 15:02
// 你这个区分大小写的, 直接这样匹配:
let str = "<div><DIV> Hello </DIV></div>";
let preg = /<div>.*<\/div>/;
let result = str.match(preg);
result = result[0].replace('<div>', '').replace('</div>', ''); // 把多余的div去掉
console.log(result);
let str = "<div><DIV> Hello </DIV></div>";
let preg = /<div>.*<\/div>/;
let result = str.match(preg);
result = result[0].replace('<div>', '').replace('</div>', ''); // 把多余的div去掉
console.log(result);
全部回答
- 1楼网友:迟山
- 2021-03-09 18:05
你这问题,和之前某人的一样。
先说结论:极度不推荐你使用这样的正则去从html中提取相关内容。
原因:
除非,你确保你的代码,使用正则表达式去匹配html内容的代码,所需处理的html是很简单的,内容很少的,嵌套很少的,否则,稍微复杂点的html代码,n多标签,甚至本身html就是不完整的,标签有误的。那么通过写正则表达式去处理的话,就是极其繁琐,效率比较低的。
比较好的做法是:
使用相关的,专门解析html的库去处理html
比如python中,使用beautifulsoup:
【总结】python的第三方库beautifulsoup的使用心得
其他语言,也有其他对应的处理html的库。
单独对于你这个,特定的,相对比较简单的,只有一级内部嵌套的div的写法,可以写成:
python
"
]+>.+?
", re.i
其中re.i表示不区分大小写
php/perl等
#(.+?)
]+>.+?
#i
或
/(.+?)
]+>.+?
(.+?)<\/div><\/div>/i
总之,还是不推荐用正则处理复杂的html。
刚专门给你写了个帖子,自己去看吧:
【整理】关于用正则表达式处理html代码方面的建议
(此处不能贴地址,请用google搜标题,即可找到帖子地址)
- 2楼网友:十年萤火照君眠
- 2021-03-09 17:18
(?<=\<div id=\"right_news_content\" class=\"float_l\"\>).+(?=\<\/div\>)
试试看,我这测试通过。
- 3楼网友:归鹤鸣
- 2021-03-09 16:04
/\<div\b[^>]*id\s*=\s*(?<f>\"|\')right_news_content\k<f>[^>]*\>\s*\<div[^>]*\>(?<content>.*?)\<\/div>\s*\<\/div\>/ies
匹配出来后content就是你要的内容
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯