J'ai une chaîne comme ceci: 00:11:40 ou 00:02:40 comment est-ce que je me suis formé pour que je puisse toujours me débarrasser des zéro (s) et colon (s) de tête , il ressemble à ce 11h40 ou 2:40formatage de chaîne, supprimer les caractères principaux
Répondre
Nous appelons ces « grands » personnages, pas de fuite, car ils sont au début, mais l'expression rationnelle pour ce qui est très facile
x.sub(/^[0:]*/,"")
Cela fonctionne exactement comme vous l'avez formulé: starti ng au début de la chaîne, supprimez tous les 0 et: s.
EDIT: l'OP voulait dès le commencement:
seconds = 11*60+40
Time.at(seconds.to_i).gmtime.strftime('%M:%S') # gives '11:40'
ou voir man strftime
pour plus d'options de formatage.
EDIT: en intégrant toute la discussion, voici l'approche recommandée. Il supprime également le besoin de l'appel de temps.
seconds = seconds.to_i
if seconds >= 60
"#{seconds/60}:#{seconds%60}"
else
"#{seconds}"
end
Merci, mais j'ai besoin d'une manière générale de le faire. Je reçois la chaîne à travers une conversion de secondes Time.at (seconds.to_i) .gmtime.strftime ('% R:% S') –
Fermer! J'ai besoin de comprendre comment utiliser "gsub" avec certains regex pour enlever les zéros et/ou les deux-points. –
Vous pouvez utiliser quelque chose comme dit Peter, mais serait bien être:
s = "00:11:40"
s = s[3..-1] # 11:40
Une autre approche serait d'utiliser la méthode du partage:
s = "00:11:40".split(":")[1,2].join(":")
Bien que je trouve que l'un plus confus et complexe.
Vous pouvez essayer l'expression rationnelle positive. Belle 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"
fin
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
fin
Pas besoin de quatre expressions rationnelles différentes et 15 lignes de code pour le faire! Un seul .sub (/^[0:] * /, "") fonctionne bien! –
Beaucoup de fois vous pouvez simplement compter sur des techniques de base de conversion, dans ruby par exemple, si vous aviez une chaîne comme "05" et que vous vouliez juste être 5, vous feriez simplement "05" .to_i
- 1. C++: Supprimer tout le formatage HTML de la chaîne?
- 2. Supprimer les caractères d'une chaîne dans C
- 3. Comment supprimer tous les caractères d'une chaîne
- 4. requête Lucene.Net avec les principaux caractères génériques
- 5. Supprimer tous les caractères non-ASCII de la chaîne
- 6. Besoin d'aide pour supprimer les caractères étranges de la chaîne
- 7. Comment faire pour supprimer les caractères indésirables d'une chaîne?
- 8. C++ Runtime formatage de chaîne
- 9. Supprimer les caractères en Python
- 10. Supprimer les caractères en utilisant Regex
- 11. chaîne Python formatage
- 12. Quels sont les trois principaux concepts principaux de WPF?
- 13. Quels sont les principaux/principaux dépôts Maven à utiliser?
- 14. Comment supprimer des caractères particuliers d'une chaîne en utilisant XSLT?
- 15. Comment supprimer les deux premiers et les deux derniers caractères d'une chaîne?
- 16. JavaFX: formatage Durée en chaîne?
- 17. Supprimer toutes les balises HTML et le formatage (RegEx)
- 18. La meilleure façon de supprimer les caractères en double (mots) dans une chaîne?
- 19. Découper les espaces principaux, y compris les onglets
- 20. WPF et le formatage de chaîne
- 21. Quels sont les principaux concurrents de Servoy?
- 22. Remplacer les caractères chaîne du tableau
- 23. Aidez-moi à supprimer les trois derniers caractères d'une chaîne s'il vous plaît!
- 24. Formatage de données tabulaires en utilisant des caractères Unicode
- 25. Comment supprimer les cookies de caractères génériques dans Rails?
- 26. chaîne automatique Unicode formatage en Java
- 27. Façon rapide de construire la chaîne avec les 0 principaux pour nombre entier?
- 28. Fonction inet_addr et principaux zéros
- 29. Utilisez sed pour supprimer tous les principaux/espaces vides dans un fichier texte
- 30. Supprimer les guillemets doubles d'une chaîne dans .NET
Certains d'entre nous ne sont que des humbles élèves de la regex, d'autres ne sont que des maîtres (vous en avez un de plus). C'est ce qui arrive quand vous TDD à 2200 heures. Refactoring est laissé comme un exercice. – Gutzofter
'" 00:00:23 "' a pour résultat '" 23 "' ce qui semble étrange. Mais pas d'offense, c'est toujours exactement ce que l'OP a demandé. –