From 4e5fbae0af3e82c1c5abbd1ad8075438bc82fbc0 Mon Sep 17 00:00:00 2001 From: bushixuanqi <2208877960@qq.com> Date: Sun, 18 Jul 2021 21:09:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/utils/HtmlFormatter.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt b/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt index 325eefdf0..268db37f2 100644 --- a/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt +++ b/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt @@ -24,14 +24,15 @@ object HtmlFormatter { html ?: return "" val keepImgHtml = html.replace(wrapHtmlRegex, "\n") .replace(notImgHtmlRegex, "") - .replace("\\n\\s*\\n|\\n$|^\\n".toRegex(), "\n") + .replace("\\n\\s*$|^\\s*\\n".toRegex(), "") + .replace("\\n\\s*\\n".toRegex(), "\n") var str = StringBuffer() var endPos = 0 var hasMatch = true //普通图片标签是否还未处理过 var hasMatchX = false //是否存在带参数或带数据属性的图片标签 var pos = -1 - val list = listOf("]*src *= *\"([^\"{]+\\{(?:[^{}]|\\{[^}]+\\})+\\})\"[^>]*>","]*data-[^=]*= *\"([^\"]+)\"[^>]*>","]*src *= *\"([^\"]+)\"[^>]*>") //优先匹配用户处理过所以带参数的图片标签,其次匹配带数据属性的图片标签 + val list = listOf("]*src *= *\"([^\"]*?,\\s*\\{(?:[^{}]|\\{[^}]+\\})+\\})\"[^>]*>","]*data-[^=]*= *\"([^\"]*)\"[^>]*>","]*src *= *\"([^\"]*)\"[^>]*>") //优先匹配用户处理过所以带参数的图片标签,其次匹配带数据属性的图片标签 while(++pos<3){ if(pos == 2) { if(hasMatchX)break //普通图片标签只在不存在存在带参数或带数据属性的图片标签的时候匹配 @@ -47,7 +48,7 @@ object HtmlFormatter { if (hasMatch) { //格式化不带参数和数据属性的普通图片标签 var appendPos0 = 0 - val matcher0 = Pattern.compile("]*src *= *\"([^\"]+)\"[^>]*>", Pattern.CASE_INSENSITIVE).matcher(strBefore) //格式化普通图片标签 + val matcher0 = Pattern.compile("]*src *= *\"([^\"]*)\"[^>]*>", Pattern.CASE_INSENSITIVE).matcher(strBefore) //格式化普通图片标签 while (matcher0.find()) { sb.append(strBefore.substring(appendPos0, matcher0.start()),"") appendPos0 = matcher0.end() @@ -59,8 +60,7 @@ object HtmlFormatter { if (pos == 0) { val url = matcher.group(1)!! val urlMatcher = AnalyzeUrl.paramPattern.matcher(url) - if(urlMatcher.find()) NetworkUtils.getAbsoluteURL(redirectUrl,url.substring(0,urlMatcher.start())) + ',' + url.substring(urlMatcher.end()) - else url + NetworkUtils.getAbsoluteURL(redirectUrl,url.substring(0,urlMatcher.start())) + ',' + url.substring(urlMatcher.end()) }else NetworkUtils.getAbsoluteURL(redirectUrl,matcher.group(1)!!) }\">") @@ -82,7 +82,7 @@ object HtmlFormatter { var appendPos0 = 0 val strBefore = keepImgHtml.substring(endPos, keepImgHtml.length) val matcher0 = - Pattern.compile("]*src *= *\"([^\"]+)\"[^>]*>", Pattern.CASE_INSENSITIVE) + Pattern.compile("]*src *= *\"([^\"]*)\"[^>]*>", Pattern.CASE_INSENSITIVE) .matcher(strBefore) //格式化普通图片标签 while (matcher0.find()) { str.append(strBefore.substring(appendPos0, matcher0.start()),"")