
Les expressions régulières (ou regex) sont un outil puissant pour travailler avec des chaînes de caractères. Elles permettent de vérifier si une chaîne de caractères correspond à un certain format, de rechercher des sous-chaînes ou de remplacer des parties de la chaîne.
Kotlin fournit un support intégré pour les expressions régulières, qui facilite grandement leur utilisation.
Dans ce tutoriel, nous allons voir comment utiliser les expressions régulières en Kotlin pour valider des entrées utilisateur, rechercher des sous-chaînes et remplacer des parties de chaînes. Nous utiliserons des exemples concrets pour illustrer chaque concept.
Validation d’entrée utilisateur avec les expressions régulières
L’une des utilisations courantes des expressions régulières est la validation des entrées utilisateur.
Par exemple, vous pouvez vérifier si une adresse e-mail saisie par l’utilisateur est valide en utilisant une expression régulière. Voici un exemple de comment valider une adresse e-mail en utilisant une expression régulière en Kotlin :
fun isValidEmail(email: String): Boolean
{
val pattern = "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]+".toRegex()
return email.matches(pattern)
}
La fonction isValidEmail
prend une chaîne de caractères en entrée (l’adresse e-mail à valider) et retourne un booléen indiquant si l’adresse e-mail est valide ou non. La variable pattern
contient une expression régulière qui décrit le format attendu pour une adresse e-mail valide.
La méthode toRegex()
convertit cette chaîne de caractères en un objet Regex
que nous pouvons utiliser pour vérifier si la chaîne d’entrée correspond au format attendu.
La méthode matches(pattern: Regex)
est utilisée pour vérifier si la chaîne d’entrée correspond à la regex donnée. Elle renvoie true
si la chaîne d’entrée correspond à la regex, false
sinon.
Recherche de sous-chaînes avec les expressions régulières
Une autre utilisation courante des expressions régulières est la recherche de sous-chaînes dans une chaîne.
Par exemple, vous pouvez rechercher toutes les occurrences d’un mot dans un paragraphe en utilisant une expression régulière.
Voici un exemple de comment rechercher toutes les occurrences d’un mot en utilisant une expression régulière en Kotlin :
fun findAllOccurrences(text: String, word: String): List<Int>
{
val pattern = "\\b$word\\b".toRegex()
val matches = pattern.findAll(text)
return matches.map { it.range.first }.toList()
}
La fonction findAllOccurrences
prend en entrée une chaîne de caractères (text
) et un mot (word
) que nous voulons rechercher. Elle retourne une liste d’entiers qui contient les positions de départ de toutes les occurrences du mot dans la chaîne de caractères.
La variable pattern
contient une expression régulière qui décrit le format attendu pour le mot que nous voulons rechercher. La méthode toRegex()
convertit cette chaîne de caractères en un objet Regex
que nous pouvons utiliser pour rechercher les sous-chaînes.
La méthode findAll(text: CharSequence)
est utilisée pour rechercher toutes les occurrences de la regex dans la chaîne de caractères. Elle renvoie un objet Sequence
qui contient les résultats de la recherche.
La méthode map { it.range.first }
est utilisée pour extraire les positions de départ de toutes les occurrences trouvées.
La méthode toList()
est utilisée pour convertir le résultat en une liste d’entiers.
Remplacement de parties de chaînes avec les expressions régulières
Enfin, les expressions régulières peuvent également être utilisées pour remplacer des parties d’une chaîne.
Par exemple, vous pouvez remplacer toutes les occurrences d’un mot dans un paragraphe avec un autre mot en utilisant une expression régulière.
Voici un exemple de comment remplacer toutes les occurrences d’un mot en utilisant une expression régulière en Kotlin :
fun replaceAllOccurrences(text: String, word: String, replacement: String): String
{
val pattern = "\\b$word\\b".toRegex()
return pattern.replace(text, replacement)
}
La fonction replaceAllOccurrences
prend en entrée une chaîne de caractères (text
), un mot (word
) à remplacer et un mot de remplacement (replacement
).
Elle retourne une nouvelle chaîne de caractères où toutes les occurrences du mot ont été remplacées par le mot de remplacement.
La variable pattern
contient une expression régulière qui décrit le format attendu pour le mot que nous voulons remplacer.
La méthode toRegex()
convertit cette chaîne en un objet Regex
La méthode replace(text: CharSequence, replacement: String)
est utilisée pour remplacer toutes les occurrences de la regex dans la chaîne de caractères par le mot de remplacement.