regex fix
This commit is contained in:
parent
f18399d529
commit
9416c88511
1 changed files with 23 additions and 3 deletions
|
@ -6,7 +6,9 @@ import java.util.regex.Pattern
|
||||||
class AnimeNameAdapter {
|
class AnimeNameAdapter {
|
||||||
companion object {
|
companion object {
|
||||||
const val episodeRegex =
|
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 =
|
||||||
|
"(?<!part\\s)\\b(\\d+)\\b"
|
||||||
const val seasonRegex = "(season|s)[\\s:.\\-]*(\\d+)[\\s:.\\-]*"
|
const val seasonRegex = "(season|s)[\\s:.\\-]*(\\d+)[\\s:.\\-]*"
|
||||||
|
|
||||||
fun findSeasonNumber(text: String): Int? {
|
fun findSeasonNumber(text: String): Int? {
|
||||||
|
@ -37,14 +39,32 @@ class AnimeNameAdapter {
|
||||||
|
|
||||||
fun removeEpisodeNumber(text: String): String {
|
fun removeEpisodeNumber(text: String): String {
|
||||||
val regexPattern = Regex(episodeRegex, RegexOption.IGNORE_CASE)
|
val regexPattern = Regex(episodeRegex, RegexOption.IGNORE_CASE)
|
||||||
return text.replace(regexPattern, "").ifEmpty {
|
val removedNumber = text.replace(regexPattern, "").ifEmpty {
|
||||||
text
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun removeEpisodeNumberCompletely(text: String): String {
|
fun removeEpisodeNumberCompletely(text: String): String {
|
||||||
val regexPattern = Regex(episodeRegex, RegexOption.IGNORE_CASE)
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue