gpt4 book ai didi

java - 正则表达式解析 JSoup 中的 html 源

转载 作者:行者123 更新时间:2023-12-01 12:25:19 24 4
gpt4 key购买 nike

我正在尝试从网页源文件中获取值,这是我的 html 规则

e=d.select("li[id=result_48]");
e=d.select("div[id=result_48]");

这是 html 标签

<li id="result_48" data-asin="0781774047" class="s-result-item">
<div id="result_48" data-asin="0781774047" class="s-result-item">

我想做的是用任何代替“li”或“div”的东西,我想获取id内的值..所以我想使用RegX代替“li”或“div”

因此,Jsoup 元素应该检查 id=result_48,如果有类似的情况,我需要数据。我怎样才能做到这一点。

提前致谢

最佳答案

使用不同顺序的属性进行测试。可能遗漏了一些案例,因此请使用您的实际数据进行测试。假设 id 属性中没有空格和引号。

public static void main(String[] args) throws Exception {
String[] lines = {
"<li id=\"result_48\" data-asin=\"0781774047\" class=\"s-result-item\">",
"<div id=\"result_48\" data-asin=\"0781774047\" class=\"s-result-item\">",
"<div data-asin=\"0781774047\" id=\"result_48\" class=\"s-result-item\">",
"<div data-asin=\"0781774047\" class=\"s-result-item\" id=\"result_48\">" };
for (String str : lines) {
System.out.println(extractId(str));
}
}

private static String extractId(String line) {
String regex = "";
regex = regex + "(?:[<](?:li|div)).*id=\""; // match start until id="
regex = regex + "([^\\s^\"]+)"; // capture the id inside quotes (exclude
// spaces and quote)
regex = regex + "(?:.*\">)"; // match any characters until the end ">
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(line);
if (matcher.matches()) {
return matcher.group(1);
}
return null;
}

关于java - 正则表达式解析 JSoup 中的 html 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26398197/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com