diff --git a/src/main/java/org/mtransit/commons/provider/OttawaOCTranspoProviderCommons.kt b/src/main/java/org/mtransit/commons/provider/OttawaOCTranspoProviderCommons.kt index 5df23c3..38e04be 100644 --- a/src/main/java/org/mtransit/commons/provider/OttawaOCTranspoProviderCommons.kt +++ b/src/main/java/org/mtransit/commons/provider/OttawaOCTranspoProviderCommons.kt @@ -1,21 +1,20 @@ package org.mtransit.commons.provider import org.mtransit.commons.CleanUtils -import org.mtransit.commons.StringUtils.EMPTY import java.util.Locale -import java.util.regex.Pattern object OttawaOCTranspoProviderCommons { private val FIX_CAIRINE_WILSON_ = CleanUtils.cleanWords("carine wilson") private val FIX_CAIRINE_WILSON_REPLACEMENT = CleanUtils.cleanWordsReplacement("Cairine Wilson") - private val REMOVE_SECOND_LANGUAGE = Pattern.compile("(\\s+~\\s+[^<>]+?)(?=\\s*<>|$)") // FIXME i18n head-signs + private val REMOVE_SECOND_LANGUAGE = """((^|(?<=<>)\s+)([^~]+)\s+~\s+([^~<]+)(\s+(?=<>)|$))""".toRegex(RegexOption.IGNORE_CASE) // FIXME i18n head-signs + private const val REMOVE_SECOND_LANGUAGE_REPLACEMENT = "$2$3$5" @JvmStatic fun cleanTripHeadsign(tripHeadSign: String, @Suppress("unused") vararg ignoreWords: String): String { var newTripHeadSign = tripHeadSign - newTripHeadSign = REMOVE_SECOND_LANGUAGE.matcher(newTripHeadSign).replaceAll(EMPTY) + newTripHeadSign = REMOVE_SECOND_LANGUAGE.replace(newTripHeadSign, REMOVE_SECOND_LANGUAGE_REPLACEMENT) newTripHeadSign = FIX_CAIRINE_WILSON_.matcher(newTripHeadSign).replaceAll(FIX_CAIRINE_WILSON_REPLACEMENT) newTripHeadSign = CleanUtils.fixMcXCase(newTripHeadSign) newTripHeadSign = CleanUtils.cleanBounds(newTripHeadSign) @@ -23,4 +22,4 @@ object OttawaOCTranspoProviderCommons { newTripHeadSign = CleanUtils.cleanLabel(Locale.ENGLISH, newTripHeadSign) return newTripHeadSign } -} \ No newline at end of file +}