ich dies von einer Code-Herausforderung gefunden:
def time_correct(t)
return unless t =~ /^\d{2}(:\d{2}){2}$/
end
es verwendet wird, um herausfinden, ob zB "0;:44:07"
ist eine reguläre Zeitzeichenfolge ("HH:MM:SS"
) oder nicht. Ich verstehe die Regex jedoch nicht. Kann mir jemand bitte die /^\d{2}(:\d{2}){2}$/
erklären? Vielen Dank!
regex101.com ist gute Ressource zu lernen und verstehen regex. Siehe [dies] (https://regex101.com/r/WIH7FL/1). Überprüfen Sie den Abschnitt ERLÄUTERUNG oben rechts. – Tushar
Kann diese Methode außer dem regulären Ausdruck alles andere als "nil" zurückgeben? Beachten Sie, dass die Regex "99: 99: 99" entspricht, obwohl das keine gültige Zeit ist. Wie lautet die URL für die von Ihnen genannte "Code Challenge"? –
'def time_korrekt (t) zurück t wenn t.nil? || t. leer? zurückgeben, wenn t = ~/^ \ d {2} (: \ d {2}) {2} $/ t = t.split (":"). Map (&: to_i) Time.at (t [0] * 3600 + t [1] * 60 + t [2]).strftime "% H:% M:% S" Ende, das ist der vollständige Code. Ich habe nur die Zeile kopiert und eingefügt, die ich nicht vollständig verstanden habe. – Chaoguo0