我遇到了使用jsoup的问题。我无法匹配<div id="shout_132684">
这些数字正在发生变化。我应该如何匹配?
Elements content = doc.select("div:matches(id=\"shout_.+?\")");
不起作用。
答案 0 :(得分:11)
您可以使用 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>
答案 1 :(得分:5)
要获得更准确的解析,您仍然可以使用正则表达式执行此操作:
Elements content = doc.select("div[id~=(shout_)[0-9]+]");