我想創建一個正則表達式來解析HTML頁面中的文檔鏈接(pdf,ppt,xls,doc)。我有正則表達式非貪婪,但我看到的問題如下:正則表達式匹配href而不通過結束標記
- href到HTML頁面出現在同一行上的文檔的href之前。
在這種情況下,正則表達式從HTML頁面的href的開始處到下一個href中的文檔文件擴展名的末尾處在同一行上匹配。
下面是我使用正則表達式:
/href="\/cms\/(.*?\.(pdf|ppt|xls|doc))(\?.*?)?"/i
下面是一些示例HTML解析:
<a href="/cms/medical/plans_overview.html">Medical</a></div><a href="/cms/docs/mydoc.pdf">
目前這款從第一HREF到最後PDF格式相匹配。似乎我需要能夠指定我想要的匹配,只要它沒有通過表達式中的關閉「>」,但一直沒能弄清楚。
希望得到任何幫助......
出於好奇,你爲什麼選擇正則表達式來執行這個任務? – 2010-11-01 19:59:15
它似乎是動態解析大量頁面的最佳方法,而無需編寫和維護大量的字符串解析邏輯。當然,正則表達式的問題在於如果你沒有很多經驗,你可以花幾個小時看看如何讓正則表達式工作 – 2010-11-02 00:02:06
你可能想用XPath查詢來代替RegEx;技術上的html標記不是_regular_語言,所以如果使用_regular_表達式來處理html或xml,它不會像預期的那樣工作。 – 2010-11-03 03:38:33