In robijn, Ik lees een aantal van de operatoren, maar ik kon het niet vinden =~
. Wat is =~
voor, of wat betekent het? Het programma dat ik zaag heeft
regexs = (/\d+/)
a = somestring
if a =~ regexs
Ik denk dat het was te vergelijken als somestring
gelijk is aan cijfers, maar is er een ander gebruik, en wat is de juiste omschrijving van de =~
operator?
Antwoord 1, Autoriteit 100%
=~
bediener overeenkomt met de reguliere uitdrukking tegen een tekenreeks en retourneert ofwel de verschuiving van de wedstrijd uit de reeks indien blijkt, anders nul.
/mi/ =~ "hi mike" # => 3
"hi mike" =~ /mi/ # => 3
"mike" =~ /ruby/ # => nil
U kunt de string / regex plaatsen aan weerszijden van de operator zoals je hierboven kunt zien.
Antwoord 2, Autoriteit 21%
Deze operator wedstrijden snaren tegen reguliere expressies.
s = 'how now brown cow'
s =~ /cow/ # => 14
s =~ /now/ # => 4
s =~ /cat/ # => nil
Als de string overeenkomt met de uitdrukking, de operator geeft de offset, en als dat niet zo is, is het resultaat nul. Het is iets ingewikkelder dan dat: zie hier de documentatie; Het is een methode in de klasse String.
Antwoord 3, Autoriteit 9%
= ~ een operator voor het afstemmen reguliere expressies, dat de index van het begin van de wedstrijd zal terugkeren (of nul indien er geen overeenkomst).