我有一个包含图像标签的字符串,超过1.现在我需要正确使用alt=
标签。我试过这样的话:
while (m3.find()) {
Pattern p4 = Pattern.compile("<!\\[CDATA\\[(.*?)\\]\\]>");
Matcher m4 = p4.matcher(m3.group());
while (m4.find()) {
if(m4.group().contains("<img src")) {
Pattern p6 = Pattern.compile("<img src(.*?)/>");
Matcher m6 = p6.matcher(m4.group());
while (m6.find()) {
Pattern p7 = Pattern.compile("alt=\"(.*?)\"");
Matcher m7 = p7.matcher(m6.group());
while (m7.find()) {
messages.add(m4.group().replace(m6.group(), m7.group().replace("alt=", "").replace("\"", "")).replace("<![CDATA[", "").replace("]]>", ""));
}
}
} else {
messages.add(m4.group().replace("<![CDATA[", "").replace("]]>", ""));
}
}
}
问题是:图片标签超过1个。 messages
是一个ArrayList。对于实际消息中的所有图像,我只需要1 messages.add
。它的代码做了一些非常不同的事情,我不知道如何解决它或我的错误在哪里:/我只想用alt="..."
的内容替换整个,但每个实际的消息都包含。任何人都可以帮助我吗?
答案 0 :(得分:0)
也许您应该使用像jsoup这样的第三方库,它允许以jquery方式解析,提取和修改html文档。使用此库,更改某些html元素的属性(如explained here)应该如下所示:
Document doc = Jsoup.parse(html);
doc.select("div.comments a").attr("rel", "nofollow");