我正在 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/