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

问题描述

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

需要正则的网页文本内容

<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

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


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

回答:

用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分钟入门教程

以上是 求大佬帮忙写一个正则表达式,非常感谢! 的全部内容, 来源链接: utcz.com/a/164350.html

回到顶部