检测大字符串中的img标记中的所有网址+ android

时间:2016-11-14 07:08:11

标签: java android

我在android中有一个字符串内容,如:

xyz xyx xyz<br /><img style="max-width: 100%;" src="https://blablab.png" alt="Loading..." /></p>abc</p><img style="max-width: 100%;" src="https://blablab2.png" alt="Loading..." /><div>abc</div><img style="max-width: 100%;" src="https://blablab3.png" alt="Loading..." />

在这里,我必须检索所有img标签的src属性值(图像文件的url),并将img标签替换为其基本64值。我怎么能这样做,即。首先检测所有src属性的值,然后用它们的base 64值替换img标签?

2 个答案:

答案 0 :(得分:1)

除非你是Chuck Norris或Jon Skeet,否则你不应该使用RegEx来匹配HTML。我建议使用Jsoup。以下是使用您问题中的字符串的示例:

String html = "xyz xyx xyz<br /><img style=\"max-width: 100%;\" src=\"https://blablab.png\" alt=\"Loading...\" /></p>abc</p><img style=\"max-width: 100%;\" src=\"https://blablab2.png\" alt=\"Loading...\" /><div>abc</div><img style=\"max-width: 100%;\" src=\"https://blablab3.png\" alt=\"Loading...\" />";
Document document = Jsoup.parse(html);
Elements imgs = document.select("img[src]");
for (Element img : imgs) {
  img.attr("src", "http://placehold.it/350x150");
}
String newHtml = document.html();

答案 1 :(得分:0)

您可以使用Matcher。以下页面提供了一些示例:http://tutorials.jenkov.com/java-regex/matcher.html。我们的想法是编写一个匹配img - 标记与src - 属性的正则表达式,找到每个匹配项,从正则表达式组中获取非常量部分,然后进行替换。