From 9416c88511e0c33e3ad2ff6138fd373eb57d5011 Mon Sep 17 00:00:00 2001 From: rebelonion <87634197+rebelonion@users.noreply.github.com> Date: Wed, 17 Jan 2024 20:37:49 -0600 Subject: [PATCH] regex fix --- .../dantotsu/media/anime/AnimeNameAdapter.kt | 26 ++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/media/anime/AnimeNameAdapter.kt b/app/src/main/java/ani/dantotsu/media/anime/AnimeNameAdapter.kt index f64f2dc4..6e69a17c 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/AnimeNameAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/AnimeNameAdapter.kt @@ -6,7 +6,9 @@ import java.util.regex.Pattern class AnimeNameAdapter { companion object { const val episodeRegex = - "(episode|ep|e)[\\s:.\\-]*([\\d]+\\.?[\\d]*)[\\s:.\\-]*\\(?\\s*(sub|subbed|dub|dubbed)*\\s*\\)?\\s*|(\\b\\d+\\b)" + "(episode|ep|e)[\\s:.\\-]*([\\d]+\\.?[\\d]*)[\\s:.\\-]*\\(?\\s*(sub|subbed|dub|dubbed)*\\s*\\)?\\s*" + const val failedEpisodeNumberRegex = + "(? + mr.value.replaceFirst(mr.groupValues[1], "") + }.ifEmpty { removedNumber } + } else { + removedNumber + } } fun removeEpisodeNumberCompletely(text: String): String { val regexPattern = Regex(episodeRegex, RegexOption.IGNORE_CASE) - return text.replace(regexPattern, "") + val removedNumber = text.replace(regexPattern, "").ifEmpty { + text + } + return if (removedNumber.equals(text, true)) { + val failedEpisodeNumberPattern: Regex = Regex(failedEpisodeNumberRegex, RegexOption.IGNORE_CASE) + failedEpisodeNumberPattern.replace(removedNumber) { mr -> + mr.value.replaceFirst(mr.groupValues[1], "") + }.ifEmpty { removedNumber } + } else { + removedNumber + } } } }