[Ruby] Unterschied zwischen Match / Scan

Ich werde tatsächlich schreiben

# irb
a = "barfoobazfoobaofoo"

#Für das Match
a.match(/ba./)
=> #<MatchData "bar">

#Zum Scannen
a.scan(/ba./)
=> ["bar", "baz", "bao"]

match gibt ein "MatchData" -Objekt zurück Der Scan wird als Array zurückgegeben.

Wenn der reguläre Ausdruck nicht übereinstimmt

#irb

# match
a.match(/baa./)
=> nil

# scan
a.scan(/baa./)
=> []

Für die Übereinstimmung wird Null zurückgegeben. Scan gibt ein leeres Array zurück.

Erwägung

Überlegung 1

Match gibt kein Array zurück. Wenn Sie also versuchen, die Ergebnisse zu durchlaufen, wird ein Fehler angezeigt. Da der Scan ein Array zurückgibt, kann es geloopt werden. (Mit anderen Worten, der Scan kann verarbeitet werden, indem der Block so wie er ist übergeben wird. Sie können dies also tun ↓)

# irb
a.scan(/ba./) {|s| p s*2}
"barbar"
"bazbaz"
"baobao"

Überlegung 2

Da match null zurückgibt, wird es zum Zeitpunkt der bedingten Verzweigung falsch. Beachten Sie, dass scan [] ist, sodass dies für die bedingte Verzweigung gilt.

Referenz

https://docs.ruby-lang.org/ja/latest/method/String/i/match.html https://docs.ruby-lang.org/ja/latest/method/String/i/scan.html

Recommended Posts

[Ruby] Unterschied zwischen Match / Scan
[Ruby] Unterschied zwischen get und post
[Ruby] Unterschied zwischen is_a? Und instance_of?
Hinweis: Unterschied zwischen Ruby "p" und "Puts"
Unterschied zwischen "|| =" und "instance_variable_defined?" Im Ruby-Memo
[Ruby] Unterschied zwischen print, put und p
[Ruby] Unterschied zwischen Puts und Return, Output und Return
Unterschied zwischen vh und%
Unterschied zwischen i ++ und ++ i
[Ruby] Ich habe über den Unterschied zwischen each_with_index und each.with_index nachgedacht
Unterschiede zwischen Klassen und Instanzen in Ruby
[Java] Unterschied zwischen == und gleich
Unterschied zwischen CUI und GUI
Unterschied zwischen Variablen und Instanzvariablen
Unterschied zwischen Mockito-Core und Mockito-All
Unterschied zwischen Bundle und Bundle-Installation
Unterschied zwischen render und redirect_to
Unterschied zwischen List und ArrayList
Unterschied zwischen .bashrc und .bash_profile
Unterschied zwischen StringBuilder und StringBuffer
Unterschied zwischen render und redirect_to
Der Unterschied zwischen der Programmierung mit Ruby-Klassen und der Programmierung ohne Ruby-Klassen
[Ruby] Vielleicht verstehst du das nicht wirklich? [Unterschied zwischen Klasse und Modul]
Der Unterschied zwischen der Ruby-Instanzmethode und der Klassenmethode ist leicht zu verstehen.
Unterschied zwischen Instanzmethode und Klassenmethode
Finden Sie den Unterschied zwischen Listentypen
Unterschied zwischen == Operator und Methode gleich
[Java] Unterschied zwischen Hashmap und HashTable
[Terminal] Unterschied zwischen irb und pry
JavaServlet: Unterschied zwischen executeQuery und executeUpdate
Unterschied zwischen dem Operator == und der Methode eqals
Grober Unterschied zwischen RSpec und Minitest
[Rails] Unterschied zwischen find und find_by
Unterschied zwischen Instanzvariable und Klassenvariable
[JAVA] Unterschied zwischen Abstract und Interface
Unterschied zwischen Thymeleaf @RestController und @Controller
Unterschied zwischen Stream Map und FlatMap
[Java] Unterschied zwischen Array und ArrayList
Unterschied zwischen primitivem Typ und Referenztyp
Unterschied zwischen string.getByte () und Hex.decodeHex (string.toCharaArray ())
[Java] Unterschied zwischen Closeable und AutoCloseable
[Java] Unterschied zwischen StringBuffer und StringBuilder
[Java] Unterschied zwischen Länge, Länge () und Größe ()
[Rails] Unterschied zwischen redirect_to und Rendern
[Android] Unterschied zwischen finish () und return;