我正在尝试在jsoup中进行第一个严肃的项目,但在这个问题上我陷入了困境-

我正在尝试从网站获取邮政编码。有一个邮政编码列表。

这是显示邮政编码的几行之一-

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


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

代码是-

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


但是什么也没出来。我找不到从该站点获取这些邮政编码的方法...。
有人知道怎么做吗?

真正的问题是我如何获取不在任何标签中但只是在开放状态下写出的数字(我想有一个用于此的术语,但对于xml术语我不是那么好)

最佳答案

我用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]

关于java - 在jsoup中使用正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28149254/

10-12 06:31