在jsoup中使用正则表达式

时间:2015-01-26 11:30:59

标签: java jsoup web-crawler

我在jsoup尝试了我的第一个严肃项目,并且我已经陷入了这个问题 -

我试图从网站上获取zipcodes。有一个zipcodes列表。

以下是提供邮政编码的行之一 -

<td align="center"><a href="http://www.zipcodestogo.com/Hialeah/FL/33011/">33011</a></td>   

所以我的想法是浏览页面并获取包含6位数字的所有字符串。正则表达式是^[0-9]{6,6}$

代码是 -

doc.select("td:matchesOwn(^[0-9]{5,5}$)");

但没有出来。我无法找到从这个网站获取这些zipcodes的方法.... 有谁知道怎么做?

这里真正的问题是我如何获得不在任何标签中的数字,但只是在公开中写出(我猜有一个术语,但我对xml术语不是很好)

1 个答案:

答案 0 :(得分:0)

我使用Element#getElementsMatchingOwnText解决了它:

public static void main(String[] args) {
    final String html = "<td align=\"center\"><a href=\"http://www.zipcodestogo.com/Hialeah/FL/33011/\">33011</a></td> ";
    final Elements elements = Jsoup.parse(html).getElementsMatchingOwnText("^[0-9]{5,5}$");

    for (final Element element : elements) {
        System.out.println("element = [" + element + "]");
        System.out.println("zip = [" + element.text() + "]");
    }
}

输出:

element = [<a href="http://www.zipcodestogo.com/Hialeah/FL/33011/">33011</a>]
zip = [33011]