ruby ​​operator “= ~” [dubbele]

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 somestringgelijk 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).

Zie voor de documentatie rel=”noreferrer”>.

Other episodes