給定一個html文檔,從文檔中的每個url中刪除查詢字符串最正確和簡潔的正則表達式模式是什麼?使用正則表達式從HTML中的URL中刪除查詢字符串
0
A
回答
5
你不能用正則表達式解析HTML。如果你事先知道頁面的格式 - 例如。
- 鏈接的形式始終< A HREF =「鏈接,沒有多餘字符轉義」>,或
- 所有的鏈接都是絕對的,以http開頭沒有其他非鏈路串:存在
那麼你可以放棄它,但對於一般的[X] HTML正則表達式解析器是不合適的。
根據您使用的語言,您需要找到HTML解析器庫(例如Python的BeautifulSoup)或HTML整理器與標準XML解析器的組合,然後掃描文檔以找到< a>元素(也可能是其他人,如< img>如果你對這些感興趣?),然後在'?'上分割屬性值。
2
回覆:Bobince的評論,HTMLAgilityPack是一個很好的用於.NET的html解析器,它比其他解析器更能處理不正確的標記。
使用它可以讓你找到所有的A標籤,然後你就可以得到HREF並且簡單地刪除任何東西,包括'?'
0
找到這個:
/href="([^\?"]*?)\?[^\"]*"/
替換:
href="\1"
你可能要小心,它不會刪除<link>
標籤。
+0
有不少匹配的情況:href =「foo?bar」,href = foo?bar(無效,但仍然可以出現)href ='foo?bar' – Greg 2008-11-07 11:28:27
相關問題
- 1. 使用正則表達式從字符串中刪除字符
- 2. 從字符串中刪除HTML標記的正則表達式
- 3. 字符串函數(?正則表達式),以從URL字符串中刪除的查詢字符串對
- 4. Vb.net正則表達式 - 從字符串中刪除html標記
- 5. 正則表達式從字符串中刪除HTML標籤
- 6. 正則表達式從字符串中刪除字符串
- 7. 使用正則表達式從字符串中刪除「public://」
- 8. 正則表達式從字符串中刪除字符
- 9. 如何使用正則表達式從URL中刪除「&」符號?
- 10. 從URL中刪除字符,但使用正則表達式排除一個字
- 11. 正則表達式從字符串中刪除換行符
- 12. 使用正則表達式從url中提取查詢字符串值
- 13. 從字符串正則表達式刪除字符串
- 14. 刪除字符的字符串中的JavaScript正則表達式
- 15. 從URL正則表達式和javascript得到查詢字符串
- 16. 從字符串中刪除(ISBN 88987321)的正則表達式
- 17. 從字符串中刪除的Ruby正則表達式
- 18. 從字符串中刪除不符合正則表達式規則的字符
- 19. 刪除變量從字符串使用正則表達式
- 20. 刪除www。和.com從字符串使用正則表達式
- 21. 從URL中刪除查詢字符串
- 22. 使用正則表達式從URL中提取字符串
- 23. 使用javascript正則表達式從字符串中提取URL
- 24. 正則表達式從時間字符串中刪除秒
- 25. 從正則表達式中刪除字符串
- 26. 從字符串中刪除正則表達式
- 27. Qt從字符串中刪除正則表達式
- 28. 具有查詢字符串的URL的正則表達式
- 29. Python:使用正則表達式從字符串中去除\ u200b
- 30. 使用php正則表達式從字符串中刪除換行符
謝謝bobince,我實際上使用的是BeautifulSoup,但是在尋找一種快速和骯髒的方式,而不是遍歷所有鏈接。 – EoghanM 2008-11-07 12:50:13