From bee9df6177b2c912e419c576f579d2543e87f673 Mon Sep 17 00:00:00 2001 From: syomie Date: Fri, 4 Mar 2022 12:18:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=9D=E8=AF=95=E4=BF=AE=E5=A4=8D=E8=A1=A5?= =?UTF-8?q?=E5=85=A8=E6=B2=A1=E6=9C=89=E5=BF=BD=E7=95=A5,=E9=99=84?= =?UTF-8?q?=E5=8A=A0=E5=8F=82=E6=95=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/help/RuleComplete.kt | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/RuleComplete.kt b/app/src/main/java/io/legado/app/help/RuleComplete.kt index 8cd10dabc..0984992a5 100644 --- a/app/src/main/java/io/legado/app/help/RuleComplete.kt +++ b/app/src/main/java/io/legado/app/help/RuleComplete.kt @@ -34,15 +34,29 @@ object RuleComplete { if (rules.isNullOrEmpty()||rules.contains(notComplete) || preRule?.contains(notComplete) ?: false){ return rules } - // 分离正则 - val regexSplit=rules.split("##".toRegex(),2) - val cleanedRule=regexSplit[0] - val regexRule=if (regexSplit.size>1) "##"+regexSplit[1] else "" + /** 尾部##分割的正则或由,分割的参数 */ + val tailStr: String + /** 分割字符 */ + val splitStr:String + /** 用于获取文字时添加的规则 */ val textRule: String + /** 用于获取链接时添加的规则 */ val linkRule: String + /** 用于获取图片时添加的规则 */ val imgRule: String + /** 用于获取图片alt属性时添加的规则 */ val imgText: String + + // 分离尾部规则 + val regexSplit=rules.split("##|,".toRegex(),2) + val cleanedRule=regexSplit[0] + if (regexSplit.size>1){ + splitStr="##|,".toRegex().find(rules)?.value ?: "" + tailStr = splitStr + regexSplit[1] + }else{ + tailStr = "" + } if (cleanedRule.contains(isXpath)){ textRule = "//text()\${seq}" linkRule = "//@href\${seq}" @@ -55,9 +69,9 @@ object RuleComplete { imgText = "img\${at}@alt\${seq}" } return when (type) { - 1 -> needComplete.replace(cleanedRule, textRule).replace(fixImgInfo, imgText) + regexRule - 2 -> needComplete.replace(cleanedRule, linkRule) + regexRule - 3 -> needComplete.replace(cleanedRule, imgRule) + regexRule + 1 -> needComplete.replace(cleanedRule, textRule).replace(fixImgInfo, imgText) + tailStr + 2 -> needComplete.replace(cleanedRule, linkRule) + tailStr + 3 -> needComplete.replace(cleanedRule, imgRule) + tailStr else -> rules } }