我在使用 jsoup 时遇到了问题。我无法匹配<div id="shout_132684">
那些数字正在改变。我应该如何匹配这些?
Elements content = doc.select("div:matches(id=\"shout_.+?\")");
不工作。
您可以使用startswith CSS 选择器^=
。它由 Jsoups 支持.select(...)
。
你可以这样做:
doc.select("div[id^=shout]");
这是一个完整的例子:
public static void main(String[] args) {
Document parse = Jsoup.parse("<div id=\"shout_23\"/>" +
"<div id=\"shout_42\"/>" +
"<div id=\"notValidId\"/>" +
"<div id=\"shout_1337\"/>");
Elements divs = parse.select("div[id^=shout");
for (Element element : divs) {
System.out.println(element);
}
}
它将打印:
<div id="shout_23"></div>
<div id="shout_42"></div>
<div id="shout_1337"></div>
为了更准确的解析,您仍然可以使用正则表达式:
Elements content = doc.select("div[id~=(shout_)[0-9]+]");