Ruby:
Utilisation des expressions régulières
Comment faire :
Association Basique
Pour comparer une chaîne de caractères à un motif simple, vous pouvez utiliser la méthode match
. Ci-dessous, nous vérifions si le mot “Ruby” existe dans une chaîne de caractères donnée.
if /Ruby/.match("Bonjour, Ruby !")
puts "Correspondance trouvée !"
end
# Sortie : Correspondance trouvée !
Association de Motifs avec Variables
Vous pouvez interpoler des variables dans votre regex en utilisant la syntaxe #{}
, rendant vos motifs dynamiques.
language = "Ruby"
if /#{language}/.match("Programmer en Ruby est amusant.")
puts "On parle de Ruby !"
end
# Sortie : On parle de Ruby !
Utilisation des Regex pour la Substitution
La méthode gsub
vous permet de remplacer chaque occurrence d’un motif par une chaîne de remplacement spécifiée.
puts "foobarfoo".gsub(/foo/, "bar")
# Sortie : barbarbar
Capture
Les parenthèses dans un regex sont utilisées pour capturer des parties d’une correspondance. La méthode match
retourne un objet MatchData
, que vous pouvez utiliser pour accéder aux captures.
match_data = /(\w+): (\d+)/.match("Âge : 30")
puts match_data[1] # Étiquette capturée
puts match_data[2] # Valeur capturée
# Sortie :
# Âge
# 30
Utilisation de Bibliothèques Tierces
Bien que la bibliothèque standard de Ruby soit puissante, vous pourriez parfois avoir besoin de fonctionnalités plus spécialisées. Un gem populaire pour travailler avec les regex est Oniguruma
, qui fournit des fonctionnalités regex supplémentaires au-delà du moteur regex intégré de Ruby.
Installez-le en utilisant :
gem install oniguruma
Un exemple d’utilisation pourrait ressembler à ceci (en supposant que vous avez requis oniguruma
après l’avoir installé) :
# C'est un exemple plus avancé et pourrait nécessiter une configuration supplémentaire
require 'oniguruma'
pattern = Oniguruma::ORegexp.new('(\d+)')
match_data = pattern.match("Le numéro est 42.")
puts match_data[1]
# Sortie : 42
Rappelez-vous, bien que puissantes, les expressions régulières peuvent devenir complexes et difficiles à gérer pour des motifs plus compliqués. Visez la lisibilité et envisagez des méthodes alternatives si votre regex devient trop alambiquée.