verwenden regex:
/^(true|false)$/
Es wird mit ^
und $
jeweils den Anfang und das Ende der Testzeichenfolge entsprechen, so kann nichts anderes in der Zeichenfolge (genaue Übereinstimmung) sein.
Siehe Live-Beispiel unter Regex101.
UPDATE (siehe @ w0lf's Kommentar): Die Klammern sollen die true|false
-Klausel isolieren, damit sie nicht falsch gruppiert werden. (Dies stellt auch die true
oder false
Übereinstimmung in der ersten einfangenden Gruppe, aber da es scheint, dass Sie nur übereinstimmen und nicht erfassen eine Ausgabe, sollte dies keinen Unterschied machen).
Alternativ, wenn Sie einfach zwei Werte übereinstimmen möchten, gibt es in Ruby einfachere Möglichkeiten. @SimoneCarletti schlägt einen vor. Sie können auch die grundlegenden Operatoren ==
oder eql?
verwenden. Versuchen Sie das folgende Skript ausführen, um zu sehen, dass diese alle Arbeiten:
values = ["true", "false", "almosttrue", "falsealmost"]
values.each do | value |
puts value
# these three are all equivalent
puts "match with if" if value == "true" || value == "false"
puts "match with equals?" if (value.eql? "true") || (value.eql? "false")
puts "match with regex" if /^(true|false)$/.match value
puts
end
die auch 'truely' und' etwas false' passen würde. – GolfWolf
@ w0lf Bearbeitet mit Erklärung. –
Danke für die Info! – AlCode