[問題] 求救解析HTML

作者: areyo (沒有名字的怪物)   2012-08-17 20:40:09
大家晚安
小弟使用的是python 2.6的正規
現在在練習解析一個網頁中某段資料如下
<h2>Department</h2>
<ul id="ref_3224438011">
<li style="margin-left: -18px"><a href="http://www.amazon.com/s?ie=UTF8&page=1&rh=n%3A172282">&#8249;&nbsp;<span class="expand">Electronics</span></a></li>
<li style="margin-left: -10px"><a href="http://www.amazon.com/s?ie=UTF8&page=1&rh=n%3A281407">&#8249;&nbsp;<span class="expand">Accessories &amp; Supplies</span></a></li>
<li style="margin-left: -2px"><a href="http://www.amazon.com/s?ie=UTF8&page=1&rh=n%3A172532">&#8249;&nbsp;<span class="expand">Audio &amp; Video Accessories</span></a></li>
<li style="margin-left: 24px"><strong>3D Glasses</strong></li>
</ul>
我想從一個完整的html中抓出這一段
我試著用線上正規檢查去試,只有土法鍊鋼出這段REG
<h2>.+\n.+\n.+\n.+\n.+\n.+\n<\/ul>
發現中間都是用.+\n不斷重覆,但是卻不知道有幾層,有人可指點迷津嗎?
感恩
作者: blackkaku (black)   2012-08-17 20:58:00
<h2>(.+\n)+?<\/ul>
作者: areyo (沒有名字的怪物)   2012-08-17 21:06:00
謝謝,可以簡單跟我解釋嗎?
作者: blackkaku (black)   2012-08-17 21:47:00
(.+\n)就是你說的重複的部分。後面的+代表重複1次以上,最後的?代表最短一致(我只知道日文叫做「最短一致」,不知道中文叫做什麼。英文好像是not greedy)
作者: areyo (沒有名字的怪物)   2012-08-17 21:49:00
感嗯
作者: s25g5d4 (function(){})()   2012-08-18 12:58:00
中文就叫非貪婪吧...

Links booklink

Contact Us: admin [ a t ] ucptt.com