En Ruby, j'ai lu certains des opérateurs, mais je n'ai pas trouvé =~
. Quel est =~
pour, ou qu'est-ce que cela signifie? Le programme que j'ai vu a
regexs = (/\d+/)
a = somestring
if a =~ regexs
Je pense que cela comparait si somestring
était égal à des chiffres, mais existe-t-il un autre usage et quelle est la définition correcte de =~
opérateur?
L'opérateur =~
Fait correspondre l'expression régulière à une chaîne et renvoie soit le décalage de la correspondance à partir de la chaîne, si elle est trouvée, sinon nil.
/mi/ =~ "hi mike" # => 3
"hi mike" =~ /mi/ # => 3
"mike" =~ /Ruby/ # => nil
Vous pouvez placer la chaîne/regex de chaque côté de l'opérateur, comme vous pouvez le voir ci-dessus.
Cet opérateur compare les chaînes aux expressions régulières.
s = 'how now brown cow'
s =~ /cow/ # => 14
s =~ /now/ # => 4
s =~ /cat/ # => nil
Si la chaîne correspond à l'expression, l'opérateur renvoie l'offset et sinon, il renvoie nil. C'est un peu plus compliqué que ça: voir la documentation ici; c'est une méthode dans la classe String.
= ~ est un opérateur de correspondance d'expressions régulières qui renvoie l'index du début de la correspondance (ou nil s'il n'y a pas de correspondance).
Voir ici pour la documentation.