2012-03-20 128 views
-1

我想從HTML中提取鏈接。我正在使用以下正則表達式從HTML中提取鏈接

href=\"([^\"]*)\" 

這是提取不必要的鏈接。我如何寫一個正則表達式來提取只有類=「l」的鏈接,如

<a href="http://users.elite.net/runner/jennifers/hello.htm" class="l"> 
<a href="http://www.hellodesign.com/" class="l"> 
<a href="http://www.ipl.org/div/hello/" class="l"> 
+3

我會發布強制性[鏈接](http://stackoverflow.com/a/1732454/960195)到一個非常有名的答案,不鼓勵用正則表達式解析HTML。 – 2012-03-20 03:20:39

+2

巧合的是,我目前穿着[襯衫](http://meta.stackexchange.com/questions/108395/stack-overflow-t-shirt-3rd-anniversary-edition)與該史詩帖子的摘錄以獨角獸的形式:) – BalusC 2012-03-20 03:23:35

回答

2

用正則表達式解析HTML是不必要的過分複雜。正則表達式是這個工作的錯誤工具。只需使用普通的HTML解析器,如Jsoup。它允許你通過正常的CSS selectors來選擇HTML元素。

Document document = Jsoup.parse(html); 
Elements links = document.select("a.l"); // Select all <a class="l"> elements. 

for (Element link : links) { 
    System.out.println(link.absUrl("href")); 
} 
+0

如何將jsoup導入到我的JSP – 2012-03-20 03:29:11

+0

只需將JAR文件放在'/ WEB-INF/lib'文件夾中,以通常的方式讓它參與到類路徑中。順便說一下,在Java類(如servlet)中的Java代碼[屬於](http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files),而不是一個JSP文件。 – BalusC 2012-03-20 03:31:57

+0

我無法將jsoup導入到我的JSP中,這使我無法找到Document,Elements ...的符號 – 2012-03-20 03:37:07