From 0de977665bc5aa9dcebc30622ad5ed5e3b87c707 Mon Sep 17 00:00:00 2001 From: spindrift Date: Tue, 20 Jan 2026 15:21:34 -0500 Subject: [PATCH] Adjust regexes to correctly parse volume and chapter when at start of filename This accommodates a long-standing behavior in Mihon derivatives that strips series from filename under certain conditions. --- .../src/commonMain/kotlin/snd/komf/util/BookNameParser.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/komf-core/src/commonMain/kotlin/snd/komf/util/BookNameParser.kt b/komf-core/src/commonMain/kotlin/snd/komf/util/BookNameParser.kt index 9b75a243..56dd494b 100644 --- a/komf-core/src/commonMain/kotlin/snd/komf/util/BookNameParser.kt +++ b/komf-core/src/commonMain/kotlin/snd/komf/util/BookNameParser.kt @@ -4,14 +4,14 @@ import snd.komf.model.BookRange object BookNameParser { private val volumeRegexes = listOf( - "(?i),?\\s\\(?volume\\s(?[0-9]+)(,?\\s?[0-9]+,)+(?\\s?[0-9]+)\\)?".toRegex(), - "(?i),?\\s\\(?([vtT]|vols\\.\\s|vol\\.\\s|volume\\s)(?[0-9]+([.x#][0-9]+)?)(?-[0-9]+([.x#][0-9]+)?)?\\)?".toRegex(), + "(?i)(?:^|,?\\s)\\(?volume\\s(?[0-9]+)(,?\\s?[0-9]+,)+(?\\s?[0-9]+)\\)?".toRegex(), + "(?i)(?:^|,?\\s)\\(?([vtT]|vols\\.\\s|vol\\.\\s|volume\\s)(?[0-9]+([.x#][0-9]+)?)(?-[0-9]+([.x#][0-9]+)?)?\\)?".toRegex(), ".*第(?\\d+)-?(?\\d+)?.*巻".toRegex(), ".*年(?:[0-9]+月)?(?:[0-9]+日)?(?\\d+)-?(?\\d+)?号".toRegex(), ) private val chapterRegexes = listOf( - "(?i)(\\sc|\\s?ch\\.\\s|\\s?chapter\\s|\\s?ep\\.\\s)(?[0-9]+([.x#][0-9]+)?)(?-[0-9]+([.x#][0-9]+)?)?".toRegex(), + "(?i)(?:^|\\s?)(c|ch\\.\\s|chapter\\s|ep\\.\\s)(?[0-9]+([.x#][0-9]+)?)(?-[0-9]+([.x#][0-9]+)?)?".toRegex(), ".*第(?\\d+(\\.\\d+)?)-?(?\\d+(\\.\\d+)?)?.*話".toRegex(), ) private val bookNumberRegexes = listOf(