如何从字符串<a> tag?</a>中提取网址和标签

时间:2013-08-20 08:21:18

标签: java

我有一个String格式<a>的{​​{1}}个标签列表。 从此String中提取网址<a href="http://example.com">Example</a>和标签http://example.com的最佳方法是什么? Currenty我使用substring方法来识别边界并获取url和标签。但使用正则表达式有更好的方法吗?

4 个答案:

答案 0 :(得分:2)

您希望查看JSoup以从html中提取值。

他们提供的示例几乎完全符合您的要求here

Document doc = Jsoup.connect("http://jsoup.org").get();

Element link = doc.select("a").first();
String relHref = link.attr("href"); // == "/"
String absHref = link.attr("abs:href"); // "http://jsoup.org/"

答案 1 :(得分:1)

也许,你会选择一个优秀的HTML解析器。即JSoup。

String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
Document doc = Jsoup.parse(html);
Element link = doc.select("a").first();

String text = doc.body().text(); // "An example link"
String linkHref = link.attr("href"); // "http://example.com/"
String linkText = link.text(); // "example""

String linkOuterH = link.outerHtml(); 
    // "<a href="http://example.com"><b>example</b></a>"
String linkInnerH = link.html(); // "<b>example</b>"

答案 2 :(得分:0)

这是正则表达式:

“\\”(。*?)\“\” (提取撇号之间的字符串)

虽然我建议您使用专门用于HTML属性提取的工具。

答案 3 :(得分:0)

您可以使用Apache commons substringBetween方法。