我在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标签?
答案 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
- 属性的正则表达式,找到每个匹配项,从正则表达式组中获取非常量部分,然后进行替换。