Les expressions régulières, souvent abrégées en regex, sont un outil puissant pour la manipulation de chaînes de caractères. En Ruby, elles sont intégrées de manière fluide, ce qui permet aux développeurs de rechercher, de remplacer et de valider des chaînes de manière efficace. Dans cet article, nous allons explorer les bases des expressions régulières en Ruby, leurs applications, et quelques exemples pratiques pour vous aider à les maîtriser.
Une expression régulière est une séquence de caractères qui forme un modèle de recherche. Elle peut être utilisée pour effectuer des opérations telles que :
Les expressions régulières sont très puissantes, mais elles peuvent aussi être complexes. Heureusement, Ruby rend leur utilisation relativement simple et intuitive.
En Ruby, vous pouvez créer une expression régulière en utilisant deux syntaxes principales :
/motif/
Regexp.new
: Regexp.new("motif")
Voici un exemple simple :
regex = /abc/
puts "abc".match?(regex) # Affiche true
Les expressions régulières peuvent être modifiées pour changer leur comportement. Voici quelques modificateurs courants :
i
: Ignore la casse (majuscules/minuscules)m
: Multiligne, permet à ^
et $
de correspondre au début et à la fin de chaque lignex
: Permet d'utiliser des espaces et des commentaires dans l'expression régulièreExemple d'utilisation du modificateur i
:
regex = /abc/i
puts "ABC".match?(regex) # Affiche true
Les métacaractères sont des caractères spéciaux qui ont une signification particulière dans les expressions régulières. Voici quelques-uns des plus courants :
.
: Correspond à n'importe quel caractère sauf une nouvelle ligne^
: Correspond au début d'une chaîne$
: Correspond à la fin d'une chaîne*
: Correspond à zéro ou plusieurs occurrences du caractère précédent+
: Correspond à une ou plusieurs occurrences du caractère précédent?
: Correspond à zéro ou une occurrence du caractère précédent{n}
: Correspond exactement à n occurrences du caractère précédent{n,}
: Correspond à n occurrences ou plus du caractère précédent{n,m}
: Correspond à entre n et m occurrences du caractère précédent[abc]
: Correspond à un caractère parmi ceux spécifiés (a, b ou c)[^abc]
: Correspond à un caractère qui n'est pas parmi ceux spécifiés(...)
: Capture un groupe de caractèresVoici un exemple utilisant quelques métacaractères :
regex = /a.b/
puts "acb".match?(regex) # Affiche true
puts "ab".match?(regex) # Affiche false
Les expressions régulières peuvent être utilisées dans plusieurs contextes en Ruby. Voici quelques-unes des méthodes les plus courantes :
match
: Vérifie si une chaîne correspond à l'expression régulièrescan
: Trouve toutes les occurrences d'un motif dans une chaînesub
: Remplace la première occurrence d'un motif par une autre chaînegsub
: Remplace toutes les occurrences d'un motif par une autre chaînesplit
: Divise une chaîne en utilisant un motif comme délimiteurVoyons quelques exemples pratiques de l'utilisation des expressions régulières en Ruby.
Voici comment vous pouvez utiliser une expression régulière pour valider une adresse e-mail :
def valid_email?(email)
regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/
email.match?(regex)
end
puts valid_email?("test@example.com") # Affiche true
puts valid_email?("invalid-email") # Affiche false
Vous pouvez également utiliser des expressions régulières pour remplacer des sous-chaînes dans une chaîne :
text = "Bonjour, monde!"
new_text = text.gsub(/monde/, "Ruby")
puts new_text # Affiche "Bonjour, Ruby!"
Utilisez split
pour découper une chaîne en fonction d'un motif :
csv = "nom,age,ville"
fields = csv.split(/,/)
puts fields.inspect # Affiche ["nom", "age", "ville"]
Les expressions régulières en Ruby sont un outil essentiel pour tout développeur souhaitant manipuler des chaînes de caractères de manière efficace. Bien qu'elles puissent sembler intimidantes au début, avec un peu de pratique, vous serez en mesure de les utiliser avec aisance. Que ce soit pour valider des données, rechercher des motifs ou effectuer des remplacements, les regex vous permettront de simplifier de nombreuses tâches courantes.
Nous espérons que cet article vous a aidé à mieux comprendre les expressions régulières en Ruby. N'hésitez pas à expérimenter avec les exemples fournis et à explorer davantage les possibilités offertes par cet outil puissant !
© 2024 RailsInsights. All rights reserved.