From bd2f84432c2f9e008eb9d93dab5d80d3ee42d5a6 Mon Sep 17 00:00:00 2001 From: Horis <8674809+821938089@users.noreply.github.com> Date: Sat, 12 Apr 2025 16:47:33 +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 --- .../io/legado/app/model/localBook/TextFile.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/io/legado/app/model/localBook/TextFile.kt b/app/src/main/java/io/legado/app/model/localBook/TextFile.kt index 0607b0321..c07b1d1b4 100644 --- a/app/src/main/java/io/legado/app/model/localBook/TextFile.kt +++ b/app/src/main/java/io/legado/app/model/localBook/TextFile.kt @@ -421,11 +421,11 @@ class TextFile(private var book: Book) { } /** - * 获取所有匹配次数大于1的目录规则 + * 获取合适的目录规则 */ private fun getTocRule(content: String): Pattern? { val rules = getTocRules().reversed() - var maxCs = 1 + var maxNum = 1 var tocPattern: Pattern? = null for (tocRule in rules) { val pattern = try { @@ -435,12 +435,16 @@ class TextFile(private var book: Book) { continue } val matcher = pattern.matcher(content) - var cs = 0 + var start = 0 + var num = 0 while (matcher.find()) { - cs++ + if (start == 0 || matcher.start() - start > 1000) { + num++ + start = matcher.end() + } } - if (cs >= maxCs) { - maxCs = cs + if (num >= maxNum) { + maxNum = num tocPattern = pattern } }