Verschiedene Sterne
könnten Sie andere Art von Sternen akzeptieren:
/^[\*✭★☆]+$/ =~ '✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭' ? true : false
#=> true
/^[\*✭★☆]+$/ =~ "*✭✭✭★✭★✭☆☆✭★**☆*✭★✭*★★*✭★☆✭☆*★" ? true : false
#=> true
Objekt? true
Beachten Sie, dass ein ternärer Operator, der true
oder false
zurückgibt, ist wahrscheinlich nutzlos, weil es zu true
und Falsey zu false
truthy umwandelt.
Sie könnten nur verwenden:
/^[\*✭★☆]+$/ =~ '✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭'
#=> 0
Seit 0
truthy ist, wäre es nichts für Boolesche Logik ändern.
Zeichenfolge # übereinstimmen?
Wie von Ruby 2.4, könnten Sie auch:
'✭✭✭✭✭✭✭✭✭✭✭✭✭✭✭'.match? /^[\*✭★☆]+$/
#=> true
String Grenzen
Schließlich, wenn Sie, dass die ganze Reihe der Sterne voll überprüfen möchten, können Sie nicht ^
verwenden sollten, oder $
aber \A
und \z
:
p "✭✭✭✭✭✭✭✭✭\nI'm not a star!!!\n✭✭✭✭✭✭".match? /^[\*✭★☆]+$/
#=> true
p "✭✭✭✭✭✭✭✭✭\nI'm not a star!!!\n✭✭✭✭✭✭".match? /\A[\*✭★☆]+\z/
#=> false
http://rubular.com/r/4qNdvC2Ap3 arbeitet für mich. –
Weil der Stern in Ihrem Muster anders ist? –
Die Sterne sind verschiedene Charaktere (deshalb sehen sie anders aus!) –