From d296482d0e36d809e6b882e22ab9e6ca1a01c82f Mon Sep 17 00:00:00 2001 From: bushixuanqi <57338301+bushixuanqi@users.noreply.github.com> Date: Fri, 23 Jul 2021 08:35:43 +0800 Subject: [PATCH] Update AnalyzeRule.kt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 优化 --- .../java/io/legado/app/model/analyzeRule/AnalyzeRule.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt index 72869218a..a2fa29e03 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt @@ -427,7 +427,7 @@ class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions { mode = Mode.XPath ruleStr } - ruleStr.length > 1 && ruleStr[0] in listOf('@','.',':','>','#','[') -> { + ruleStr.length > 1 && ruleStr[0] in ruleChar -> { //isJSON为真时,之后可能不是jsonPath,故提前判断 //XPath,Json已经提前判断了,故@开头即为默认规则,AnalyzeByJSoup会修剪开头的’@‘,故此处不必切片字符串 //#开头为根据id查元素,后续规则会切分##正则,故此处不必考虑##情况 @@ -570,7 +570,7 @@ class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions { return ruleStr.startsWith("//") || ruleStr.startsWith("$.") || ruleStr.startsWith("$[") - || ruleStr.length > 1 && ruleStr[0] in listOf('@','.',':','>','#','*') + || ruleStr.length > 1 && ruleStr[0] in innerRuleChar } } @@ -646,6 +646,8 @@ class AnalyzeRule(val ruleData: RuleDataInterface) : JsExtensions { } companion object { + private val ruleChar = listOf('@','.',':','>','#','[') + private val innerRuleChar = listOf('@','.',':','>','#','*') private val putPattern = Pattern.compile("@put:(\\{[^}]+?\\})", Pattern.CASE_INSENSITIVE) private val evalPattern = Pattern.compile("@get:\\{[^}]+?\\}|\\{\\{[\\w\\W]*?\\}\\}", Pattern.CASE_INSENSITIVE)