Voglio un'espressione regolare per HH: MM: SS AM/PM qui HH deve essere solo 1-12, MM deve 60 min, SS come al solito (60 sec.) Qualcuno lo ha correttamente ... ?espressione regolare per tempo
risposta
(0[1-9]|1[0-2]):([0-5][0-9]:[0-5][0-9]|(59|44|29):60) (AM|am|PM|pm)
+1 per secondi bisestili. Hai perso l'AM/PM, ma è abbastanza facile. –
I secondi di salto si verificano sia in AM che in PM a seconda del fuso orario (se si è + GMT avviene nell'AM). – mynameiscoffey
necessitano solo di am/pm in minuscolo. Corrispondilo: (0 [1-9] | 1 [0-2]): ([0-5] [0-9]): ([0-5] [0 -9] | 60) (AM | PM | am | pm) –
/^([1-9]|10|11|12):[0-5][0-9]:[0-5][0-9] [AP]M$/
Elegante! +1 per brevità. –
Non supporta la notazione HH fornita nella domanda, anche se segue anche che con "HH deve essere 1-12" quindi chi lo sa. Potrebbe anche voler aggiungere un caso per secondi bisestili, per quanto rari. – mynameiscoffey
Può essere reso più breve:/^ ([1-9] | 1 [0-2]) (: [0-5] [0-9]) {2} [AP] M $/ma penso che rende più difficile leggere. ;) –
Se si vuole essere in grado di avere l'imbottitura zero optional così come secondo salto:
/^((0?[1-9])|(1[0-2])):[0-5]\d:(([0-5]\d)|(60)) [AP]M$/
La ripartizione:
(0?[1-9]|1[0-2])
1-9 (opzionale zero) o 10-12
[0-5][0-9]
00-59 (0-5 per la prima cifra, 0-9 per la seconda)
([0-5][0-9])|(60)
secondi di salto
[AP]M
AM/PM
Aggiornato, grazie per la cattura - questo è quello che ottengo per non provarlo prima. – mynameiscoffey
regexp molto bello! – jspcal
- 1. Espressione regolare per corrispondenza "|"
- 2. Espressione regolare per acronimi
- 3. Espressione regolare per trovare un'espressione regolare?
- 4. Espressione regolare per trovare spazi
- 5. Espressione regolare per numero decimale
- 6. Espressione regolare per numeri arabi
- 7. Espressione regolare per convalidare l'ora valida
- 8. Espressione regolare per abbinare due frasi separate
- 9. Python String.Replace espressione regolare
- 10. Numeri JSON Espressione regolare
- 11. Problema di espressione regolare
- 12. Semplifica questa espressione regolare
- 13. Espressione regolare sostituire
- 14. Clojure multilinea espressione regolare
- 15. Espressione regolare - Gruppi ripetuti
- 16. log4j espressione regolare? [{}]
- 17. Espressione regolare collegamento automatico
- 18. c espressione regolare howto
- 19. Espressione regolare sovrapposta
- 20. Mercurial .hgignore espressione regolare
- 21. Espressione regolare di fronte
- 22. Espressione regolare Python
- 23. espressione regolare \ Z (? Ms)
- 24. espressione regolare in iOS
- 25. Espressione regolare: intervallo numerico
- 26. Lunghezza minima espressione regolare
- 27. Espressione regolare per numero di conto bancario?
- 28. Qualche modo per migliorare questa espressione regolare?
- 29. Espressione regolare per dominio dall'indirizzo email
- 30. Espressione regolare per la convalida della password
La notazione 'HH' implica che le ore devono essere riempite a zero e iniziare da 00, tuttavia lo si contraddice più avanti nella domanda. Cosa intendi veramente? Puoi essere un po 'più preciso, magari con alcuni esempi di stringhe corrispondenti e non riuscite? –