Ruby Language = ~ opérateur


Exemple

if /hay/ =~ 'haystack'
  puts "There is hay in the word haystack"
end

Note: La commande est importante . Bien que la 'haystack' =~ /hay/ soit dans la plupart des cas équivalente, les effets secondaires peuvent différer:

  • Les chaînes capturées à partir de groupes de capture nommés ne sont affectées à des variables locales que lorsque Regexp#=~ est appelée ( regexp =~ str );
  • Le bon opérande pouvant être un objet arbitraire, pour regexp =~ str il sera appelé soit Regexp#=~ soit String#=~ .

Notez que cela ne renvoie pas une valeur true / false, mais renvoie soit l'index de la correspondance s'il est trouvé, soit nul s'il n'est pas trouvé. Parce que tous les entiers en ruby ​​sont vrais (y compris 0) et nil est faux, cela fonctionne. Si vous voulez une valeur booléenne, utilisez #=== comme indiqué dans un autre exemple .