css - JavaScript 正则如何提取div标签里的内容?
伊谢尔伦
伊谢尔伦 2017-04-11 13:10:31
[JavaScript讨论组]

如有个p标签,如何用正则提取里面的内容
'

hello world

'

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(9)
ringa_lee

首先,这个问题问的不好。

  1. 什么样的 p, 大可以贴出来看看嘛?

  2. 需要提取哪些内容,大可以写出来分享下嘛?
    因为很有可能,你现在问的,和你真正想要问的,有比较可观的差距。所以,问问题的时候,最好列出你的 context。

好了,回到正题,用正则(工具)提取p的内容。

正则表达式并不能提取 p 的内容

这个时候,我们要使用 dom 的api。dom api - 教程

因为内容可能包含 html 标签,所以你可能需要酌情处理一下。

使用正则表达式筛选你要的数据

拿到 p 的内容之后,可以着手编写你的正则表达式,正则表达式-教程

就这些。

阿神
pStr.match(/<p>(.+)<\/p>/))[1]
天蓬老师

JS 可以试试 jQuery,正则是给自己找麻烦

大家讲道理

html不是正则语言,所以使用正则表达式分析比较麻烦,建议采用楼上的建议使用jquery的html()方法。

let ele = '<p>this is content.</p>';
$(ele).html();
ringa_lee
  1. 正则

let matches = html.match(/<p>(.+)<\/p>/g))
if (matches !== null) {
    let content = matches[1];
    console.log(content)
}
  1. DOM API

let p = document.querySelector('#p');
let content = p.innerText;
console.log(content);
天蓬老师

想要 做什么 为什么用正则呢

天蓬老师
if(/<p>(.+)<\/p>/.test('<p>hello world</p>')){
    console.log(RegExp.$1)
}

或者

/<p>(.+)<\/p>/.exec('<p>hello world</p>')[1]
伊谢尔伦
var content = [];document.body.innerText.replace(/<p>(.*?)<\/p>/g, function($0, $1) {
    content.push($1);
    return $0;
})
巴扎黑

如果是爬虫的话,推荐使用cheerio,这中能够像jQuery一样使用,提供多种选择器。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号