html 中如果更改 图片地址
1.问题 一段html代码,如下
<a href="兔兔_one.jpg" target="_balnk"><img src="兔兔_one.jpg" width="300"/></a> <br/>
我想要替换<img src="兔兔_one.jpg" width="300"/> 这段代码中的 兔兔_one.jpg 名字 2.步骤 首先,我们需要找到 兔兔_one.jpg 所处的地方 使用这段代码
fun getImgStr(htmlStr: String): MutableList<String> {
val pics: MutableList<String> = mutableListOf()
var img = ""
val patternImage: Pattern
val regExImg = "<img.*src\\s*=\\s*(.*?)[^>]*?>"
patternImage = Pattern.compile(regExImg, Pattern.CASE_INSENSITIVE)
val matcherImage: Matcher = patternImage.matcher(htmlStr)
while (matcherImage.find()) {
img = matcherImage.group()
val m: Matcher = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)").matcher(img)
while (m.find()) {
m.group(1)?.let {
pics.add(it)
}
}
}
return pics
}
然后,使用replace 来替换html 字符串中的文字,整体代码如下
private fun changeHtmlImage(htmlStr: String): String {
var tempHtmlString = htmlStr
val data = Html.fromHtml(htmlStr).toString()
val picList = getImgStr(data)
for (pic in picList){
tempHtmlString = htmlStr.replace(pic,"newName.jpg")
}
return tempHtmlString
}
newName.jpg 就会替换 兔兔_one.jpg 3.使用
val htmlString = "<a href="兔兔_one.jpg" target="_balnk"><img src="兔兔_one.jpg" width="300"/></a> <br/>"
val newHtml = changeHtmlImage(htmlString)
4.结果
<a href="兔兔_one.jpg" target="_balnk"><img src="newName.jpg" width="300"/></a> <br/>
|