Kotlin:
Suppression de caractères correspondant à un motif
How to:
En Kotlin, vous pouvez utiliser la méthode replace()
avec une expression régulière pour supprimer les caractères indésirables. Voici comment :
fun main() {
val originalText = "Bonjour, comment ça va? 123!"
val pattern = "[0-9]".toRegex() // On suppose qu'on veut supprimer tous les chiffres
val cleanedText = originalText.replace(pattern, "")
println(cleanedText) // Affiche : Bonjour, comment ça va? !
}
Et si vous voulez supprimer plusieurs motifs :
fun main() {
val originalText = "Email : [email protected], Tél : 123-456-7890"
val pattern = "[[email protected]]".toRegex()
val cleanedText = originalText.replace(pattern, "")
println(cleanedText) // Affiche : Email : contactexamplecom, Tél :
}
Deep Dive:
Historiquement, les expressions régulières sont utilisées depuis les années 1950, alors que l’édition de texte était très primaire. En Kotlin, utiliser replace()
avec Regex est la solution moderne pour manipuler les chaînes, mais vous pourriez également traverser et manipuler manuellement la chaîne si le contexte l’exige, bien que cela soit souvent moins efficace.
Les alternatives incluent l’utilisation de méthodes comme filter
pour les cas plus simples :
fun main() {
val originalText = "Ceci est 1 exemple!"
val cleanedText = originalText.filter { it.isLetter() || it.isWhitespace() }
println(cleanedText) // Affiche : Ceci est exemple
}
Concernant l’implémentation, quand vous créez une expression régulière en Kotlin avec toRegex()
, vous avez la possibilité d’utiliser des drapeaux (flags) pour changer le comportement de l’analyse, comme ignorer la casse.
See Also:
- Documentation Kotlin sur les expressions régulières: Kotlin Regex
- Un guide sur les expressions régulières en général: Regular Expressions Info
- Projet Kotlin GitHub pour explorer le code source: Kotlin GitHub Repository