J’ai besoin de substituer la valeur d’une chaîne dans mon expression régulière en Ruby. Y a-t-il un moyen facile de faire cela ? Par exemple :
Réponses
Trop de publicités?
glenn mcdonald
Points
8933
Notez que l' Regexp.quote
de Jon L. la réponse , c'est important!
if goo =~ /#{Regexp.quote(foo)}/
Si vous venez de faire le "évident" de la version:
if goo =~ /#{foo}/
puis le temps de votre match de texte sont traités comme des regexp des caractères génériques, "0.0.0.0"
correspondra "0x0y0z"
.
Notez également que si vous avez vraiment juste pour vérifier une correspondance de sous-chaîne, vous pouvez simplement faire
if goo.include?(foo)
qui n'a pas besoin d'un surplus de citer ou de se soucier de caractères spéciaux.
JasonTrue
Points
13615
Markus Jarderot
Points
33893
Jeremy Ruten
Points
59989