Ho una stringa come questa: 00:11:40 o 00:02:40 come faccio a formarmi in modo che possa sempre sbarazzarmi dello zero (i) e dei due punti iniziali , in modo che appaia come questo 11:40 o 2:40formattazione di stringhe, rimuovere i caratteri iniziali
risposta
Noi chiamiamo questi personaggi "principali", non finale, dal momento che sono all'inizio, ma l'espressione regolare per questo è molto facile
x.sub(/^[0:]*/,"")
Che funziona esattamente come lo avete scritto: starti ng all'inizio della stringa, rimuovi tutti gli 0 e: s.
EDIT: il PO ha voluto questo fin dal principio:
seconds = 11*60+40
Time.at(seconds.to_i).gmtime.strftime('%M:%S') # gives '11:40'
o vedere man strftime
per ulteriori opzioni di formattazione.
EDIT: integrando tutta la discussione, ecco l'approccio consigliato. Rimuove anche la necessità della chiamata Time.
seconds = seconds.to_i
if seconds >= 60
"#{seconds/60}:#{seconds%60}"
else
"#{seconds}"
end
Grazie, ma ho bisogno di un modo generale per farlo. Ottengo la stringa attraverso una conversione da secondi Time.at (seconds.to_i) .gmtime.strftime ('% R:% S') –
Chiudi! Ho bisogno di capire come usare "gsub" con un po 'di regex per togliere gli zeri iniziali e/oi due punti –
si può usare qualcosa come Pietro ha detto, ma sarebbe corretto essere:
s = "00:11:40"
s = s[3..-1] # 11:40
Un altro approccio sarebbe quello di utilizzare il metodo split:
s = "00:11:40".split(":")[1,2].join(":")
Anche se trovo che un altro confuso e complesso.
Si potrebbe desiderare di provare regex di look-behind positivo. 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"
fine
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
fine
Non c'è bisogno di quattro espressioni regex e 15 linee di codice diverse per fare questo! Un singolo .sub (/^[0:] * /, "") funziona bene! –
Molte volte è sufficiente affidarsi a tecniche di conversione di base, ad esempio in rubino, se si avesse una stringa come "05" e si desidera che fosse solo 5, si farebbe semplicemente "05" .to_i
- 1. Formattazione di stringhe Oracle PL/SQL
- 2. Formattazione di stringhe in java
- 3. Rimuovere i caratteri dopo la stringa?
- 4. Rimuovere i caratteri URL errati con JavaScript
- 5. formattazione di stringhe espressioni (Python)
- 6. R: Rimuovere gli zeri iniziali dall'inizio di una stringa di caratteri
- 7. preg_replace per rimuovere caratteri non stampabili sembra rimuovere anche tutti i caratteri stranieri
- 8. Come rimuovere caratteri unicode non validi dalle stringhe in java
- 9. Regex per rimuovere caratteri non alfanumerici da stringhe UTF8
- 10. Formattazione stringa a 10 caratteri
- 11. Confronto stringhe che ignorano i caratteri accentati
- 12. Rimuovere gli spazi iniziali e finali?
- 13. JavaScript rimuovere spazi iniziali e finali
- 14. Come rimuovere i caratteri speciali html?
- 15. rimuovere i caratteri da URL con htaccess
- 16. Rimuovere i caratteri duplicati dalla stringa
- 17. Java: formattazione di stringhe con segnaposto
- 18. Formattazione delle stringhe di timedeltas in Pandas
- 19. rimuovere tutti i caratteri speciali in java
- 20. rimuovere i caratteri speciali in NSString
- 21. Rimuovere i caratteri speciali da una stringa
- 22. rimuovere i caratteri non inglesi PHP
- 23. Come rimuovere spazi iniziali e finali dalle stringhe in una lista Python
- 24. utilizzando python, rimuovere i tag HTML/formattazione da una stringa
- 25. concatenazione di stringhe e caratteri
- 26. Formattazione split delle stringhe in python 3
- 27. Come utilizzare la formattazione delle stringhe per mostrare ENTRAMBI gli zero iniziali e la precisione di 3?
- 28. Regex rimuovere caratteri speciali
- 29. Regex per rimuovere tutti i caratteri speciali dalla stringa?
- 30. stringhe JSON e come gestire i caratteri di escape
Alcuni di noi sono solo umili studenti della regex, altri sono solo padroni (tu hai preso una decisione da me). Questo è quello che succede quando si TDD alle 22:00. Il refactoring è lasciato come esercizio. – Gutzofter
'" 00:00:23 "' risulta in '" 23 "' che sembra strano. Ma senza offesa, questo è ancora esattamente ciò che l'OP ha richiesto. –