2012-03-20 134 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