Ich habe eine Zeichenfolge wie folgt: 00:11:40 oder 00:02:40 wie bin ich formatiert, so dass ich immer die führenden Null (s) und Doppelpunkt loswerden kann , so dass es wie diese 11.40 oder 2:40string Formatierung, führende Zeichen entfernen
Antwort
wir diese "führenden" Zeichen nennen, nicht schleppen, da sie am Anfang ist, aber die Regex dafür ist sehr einfach
x.sub(/^[0:]*/,"")
Das funktioniert genau so, wie Sie es formulierten: starti ng am Anfang der Zeichenfolge, entfernen Sie alle 0 und: s.
EDIT sieht: die OP wollte dies von Anfang an:
seconds = 11*60+40
Time.at(seconds.to_i).gmtime.strftime('%M:%S') # gives '11:40'
oder man strftime
für mehr Formatierungsoptionen sehen.
EDIT: einschließlich der gesamten Diskussion, hier ist der empfohlene Ansatz. Es beseitigt auch die Notwendigkeit für den Zeitanruf.
seconds = seconds.to_i
if seconds >= 60
"#{seconds/60}:#{seconds%60}"
else
"#{seconds}"
end
Danke, aber ich brauche einen allgemeinen Weg, dies zu tun. Ich bekomme den String durch eine Umwandlung von Sekunden Time.at (seconds.to_i) .gmtime.strftime ('% R:% S') –
Schließen! Ich muss herausfinden, wie man "gsub" mit einigen Regex verwendet, um die führenden Nullen und/oder Doppelpunkte zu entfernen –
Sie so etwas wie Peter sagte verwenden können, aber richtig wäre:
s = "00:11:40"
s = s[3..-1] # 11:40
Ein anderer Ansatz wäre, die Split-Methode zu verwenden:
s = "00:11:40".split(":")[1,2].join(":")
Obwohl ich, dass man mehr finden verwirrend und komplex.
Vielleicht möchten Sie einen positiven Look-Behind-Regex ausprobieren. Nizza reference
it "should look-behind for zeros" do
time = remove_behind_zeroes("ta:da:na")
time.should be_nil
time = remove_behind_zeroes("22:43:20")
time.should == "22:43:20"
time = remove_behind_zeroes("00:12:30")
time.should == "12:30"
time = remove_behind_zeroes("00:11:40")
time.should == "11:40"
time = remove_behind_zeroes("00:02:40")
time.should == "2:40"
time = remove_behind_zeroes("00:00:26")
time.should == "26"
Ende
def remove_behind_zeroes(value)
exp = /(?<=00:00:)\d\d/
match = exp.match(value)
if match then return match[0] end
exp = /(?<=00:0)\d:\d\d/
match = exp.match(value)
if match then return match[0] end
exp = /(?<=00:)\d\d:\d\d/
match = exp.match(value)
if match then return match[0] end
exp = /\d\d:\d\d:\d\d/
match = exp.match(value)
if match then return match[0] end
nil
Ende
Keine Notwendigkeit für vier verschiedene regexes und 15 Zeilen Code, um dies zu tun! Eine einzelne .sub (/^[0:] * /, "") funktioniert einwandfrei! –
Viele Male können Sie sich einfach auf grundlegende Umwandlungstechniken verlassen, in Ruby zum Beispiel, wenn Sie eine Schnur wie "05" hatten und es nur 5 sein wollten, würden Sie einfach "05" .to_i tun
- 1. Entfernen führende Komma aus einem String
- 2. ANT: Führende/nachfolgende Whitespace aus String entfernen
- 3. einen String-Formatierung Scientific Notation entfernen - Java
- 4. Entfernen führende Nullen aus alphanumerischen Zeichen in R
- 5. C++: Entfernen Sie alle HTML-Formatierung von String?
- 6. Vim: Textwrap ohne führende Zeichen
- 7. Entfernen führende Nullen mit HiveQL
- 8. Wie entfernen führende und nachgestellten Leerzeichen aus einem String
- 9. Multiple Line-String Formatierung
- 10. Formatierung meines String
- 11. String Python Formatierung
- 12. Entfernen seltsame Zeichen von PHP-String
- 13. entfernen Punkt-Zeichen aus einem String C#
- 14. String literal und Entfernen unerwünschter Zeichen
- 15. Entfernen Junk Zeichen von Ruby String
- 16. String aus Zeigerzeiger-Zeichen in C entfernen
- 17. entfernen erstes und letztes Zeichen aus string
- 18. entfernen Zeilenende Zeichen von Java-String
- 19. entfernen Zeichen aus String ersetzen() verwenden
- 20. Wie drucke ich ein '%' Zeichen mit String Formatierung?
- 21. Python verwenden, entfernen HTML-Tags/Formatierung aus einem String
- 22. Hilfe mit jQuery String Formatierung
- 23. unveränderbare führende Zeichen in HTML-Eingabe?
- 24. Unerwartete führende Zeichen in heruntergeladenem CSS
- 25. Grep genaue Linie ohne führende Zeichen
- 26. Python-String Formatierung
- 27. C# String-Formatierung
- 28. String-Formatierung in Scala
- 29. C++: String Formatierung
- 30. C++ Fehler: String Formatierung
Einige von uns sind nur bescheidene Studenten der Regex, andere sind nur Meister (Sie haben sich von mir erhoben). Das passiert bei TDD um 2200 Uhr. Refactoring bleibt als Übung übrig. – Gutzofter
'" 00:00:23 "ergibt' '23' 'was seltsam erscheint. Aber nichts für ungut, das ist immer noch genau das, was das OP angefordert hat. –