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 } }