求大佬帮忙写一个正则表达式,非常感谢!

问题描述

我正则表达式一直是个盲区,希望会的朋友帮忙写一个正则表达式,将下面一段网页内容提取出来标题、图片链接、文章链接以及描述。小弟在此谢过!

需要正则的网页文本内容

<article class="excerpt excerpt-1">
            <a href='/szb/eth/28157.html' class='focus' target='_blank'><img alt='推出期货交易后,以太坊能否摆脱“归零”争议?' class='thumb lazy' data-original='/uploads/allimg/180906/8-1PZ6094Za45-lp.png'/></a>
            <header>
                <h2><a href="/szb/eth/28157.html" title="<b>推出期货交易后,以太坊能否摆脱“归零”争议?</b>" target="_blank"><b>推出期货交易后,以太坊能否摆脱“归零”争议?</b></a></h2>
            </header>
            <p class="meta">
                <time><i class="fa fa-clock-o"></i><font color="#e15c34">2018-09-06</font></time>
                <span class="pv"><i class="fa fa-eye"></i>阅读(1986)</span>
                <span class="pc"><i class="fa fa-comments-o"></i>评论(<span id="url::http://www.bitcoin86.com/szb/eth/28157.html" class = "cy_cmt_count" ></span>)</span>
            </p>
            <p class="note">芝加哥期权交易所(CBOE) 将要推出以太坊(ETH)期货了!据 Business Insider 报道,CBOE可能会在2018年底推出以太坊期货。 提到虚拟货币领域的期货,大部分从业者可能会对2017年底比特币期货推出时的情景记忆犹新,记忆更深刻的则是由此间接引发的...</p>
        </article>

你期待的结果是什么?实际看到的错误信息又是什么?

我需要将A标签中的href提取出来作为文章链接URL
<header>中标签的文本内容提取出来作为标题。
<img>标签中的data-original属性作为图片链接。
<p class="note">中的text作为描述。

因为我对正则不熟,所以不知道可不可以一个表达式下来将上面四个属性全部获取到,然后放入一个数组list中,索引分别是0,1,2,3

如果上面想法不现实的情况下,希望懂的大神帮忙写四个正则表达式即可。再次表示感谢。


我的问题已经自己解决了,不过如果大家有好的解决办法欢迎贴出来,来帮助其他需要的人。

阅读 2.3k
3 个回答

用PHP写的正则表达式

preg_match_all('/<h2><a href="(.*?)" .*><b>(.*?)<\/b>.*<\/h2>/', $data, $title);
$href = $title[1][0];
$title = $title[2][0];
echo $title.'<br>';//标题
echo $href.'<br>';//文章链接

preg_match_all('/<img.* class="thumb lazy" data-original="(.*?)"\/>/', $data, $img);
$img = $img[1][0];
echo $img.'<br>';//图片链接

preg_match_all('/<p class="note">(.*?)<\/p>/', $data, $message);
$content = $message[1][0];
echo $content.'<br>';//描述

效果图:
图片描述

JS的正则应该和这差不多,可以参考一下

Python 直接用lxml中的etree包做xpath匹配就好了

  1. 从网页里找东西,不要用正则,因为会写的很复杂,通用性很差。大部分语言都有现成的包,直接装一个建树遍历吧。
  2. 学正则推荐 正则表达式30分钟入门教程
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏