gpt4 book ai didi

java - Jsoup 中的正则表达式适用于 java 项目,不适用于 Android 项目

转载 作者:行者123 更新时间:2023-11-30 11:54:16 31 4
gpt4 key购买 nike

我正在尝试使用 Jsoup HTML Parser 从网站获取缩略图 URL我需要提取所有以 60x60.jpg(或 png)结尾的 URL(所有缩略图 URL 都以此 URL 结尾)

问题是我让它在普通的 Java 项目中工作,但在 Android 中它不起作用。 (正则问题)

此代码适用于 Java 项目:

List<String> urls = new ArrayList<String>();
Document doc = Jsoup.connect("http://example.com").get();
Elements pngs = doc.select("img[src~=(60x60).(png|jpg)]");
for (Element img : pngs) {
String url = img.absUrl("src");
{
if (!urls.contains(url)) {
urls.add(url);
}
}
}

然后打印 urls 数组。它在 Java 中工作,而不是在 Android 项目中工作。

在 Android 中,唯一有效的正则​​表达式只有这个

Elements pngs = doc.select("img[src$=.jpg]");

它在 Android 上工作正常.. 虽然我不需要所有以 .jpg 结尾的链接

我试过用

Elements pngs = doc.select("img[src~=(60x60)\\.(png|jpg)]");

仍然不好,即使在 .(png|jpg) 之前有一个斜线

Regex 中的问题是什么?它在 Android 中的工作方式不同还是什么?它不可能是解析器问题,因为它适用于普通的 Java 项目..

最佳答案

我不知道 JSoup 或 Android 的正则表达式实现,但是一个正则表达式可以找到以 img= 开头并以 60x60.jpg60x60 结尾的字符串.png 将是

\bimg=.*?60x60\.(jpg|png)\b

也许您可以张贴您尝试解析的文本的摘录。可能正则表达式不是您问题的解决方案。

关于java - Jsoup 中的正则表达式适用于 java 项目,不适用于 Android 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5801504/

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