鍍金池/ 問(wèn)答/PHP  Python  C++  網(wǎng)絡(luò)安全  HTML/ 求大佬幫忙寫(xiě)一個(gè)正則表達(dá)式,非常感謝!

求大佬幫忙寫(xiě)一個(gè)正則表達(dá)式,非常感謝!

問(wèn)題描述

我正則表達(dá)式一直是個(gè)盲區(qū),希望會(huì)的朋友幫忙寫(xiě)一個(gè)正則表達(dá)式,將下面一段網(wǎng)頁(yè)內(nèi)容提取出來(lái)標(biāo)題、圖片鏈接、文章鏈接以及描述。小弟在此謝過(guò)!

需要正則的網(wǎng)頁(yè)文本內(nèi)容

<article class="excerpt excerpt-1">
            <a href='/szb/eth/28157.html' class='focus' target='_blank'><img alt='推出期貨交易后,以太坊能否擺脫“歸零”爭(zhēng)議?' class='thumb lazy' data-original='/uploads/allimg/180906/8-1PZ6094Za45-lp.png'/></a>
            <header>
                <h2><a href="/szb/eth/28157.html" title="<b>推出期貨交易后,以太坊能否擺脫“歸零”爭(zhēng)議?</b>" target="_blank"><b>推出期貨交易后,以太坊能否擺脫“歸零”爭(zhēng)議?</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>評(píng)論(<span id="url::http://www.bitcoin86.com/szb/eth/28157.html" class = "cy_cmt_count" ></span>)</span>
            </p>
            <p class="note">芝加哥期權(quán)交易所(CBOE) 將要推出以太坊(ETH)期貨了!據(jù) Business Insider 報(bào)道,CBOE可能會(huì)在2018年底推出以太坊期貨。 提到虛擬貨幣領(lǐng)域的期貨,大部分從業(yè)者可能會(huì)對(duì)2017年底比特幣期貨推出時(shí)的情景記憶猶新,記憶更深刻的則是由此間接引發(fā)的...</p>
        </article>

你期待的結(jié)果是什么?實(shí)際看到的錯(cuò)誤信息又是什么?

我需要將A標(biāo)簽中的href提取出來(lái)作為文章鏈接URL
<header>中標(biāo)簽的文本內(nèi)容提取出來(lái)作為標(biāo)題。
<img>標(biāo)簽中的data-original屬性作為圖片鏈接。
<p class="note">中的text作為描述。

因?yàn)槲覍?duì)正則不熟,所以不知道可不可以一個(gè)表達(dá)式下來(lái)將上面四個(gè)屬性全部獲取到,然后放入一個(gè)數(shù)組list中,索引分別是0,1,2,3

如果上面想法不現(xiàn)實(shí)的情況下,希望懂的大神幫忙寫(xiě)四個(gè)正則表達(dá)式即可。再次表示感謝。


我的問(wèn)題已經(jīng)自己解決了,不過(guò)如果大家有好的解決辦法歡迎貼出來(lái),來(lái)幫助其他需要的人。

回答
編輯回答
笑忘初
  1. 從網(wǎng)頁(yè)里找東西,不要用正則,因?yàn)闀?huì)寫(xiě)的很復(fù)雜,通用性很差。大部分語(yǔ)言都有現(xiàn)成的包,直接裝一個(gè)建樹(shù)遍歷吧。
  2. 學(xué)正則推薦 正則表達(dá)式30分鐘入門(mén)教程
2017年8月17日 11:28
編輯回答
情殺

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

2017年10月11日 18:05
編輯回答
離觴

用PHP寫(xiě)的正則表達(dá)式

preg_match_all('/<h2><a href="(.*?)" .*><b>(.*?)<\/b>.*<\/h2>/', $data, $title);
$href = $title[1][0];
$title = $title[2][0];
echo $title.'<br>';//標(biāo)題
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的正則應(yīng)該和這差不多,可以參考一下

2018年3月14日 21:03