Ich möchte einen regulären Ausdruck für die passende Zeit im HH: MM-Format. Folgendes habe ich und es funktioniert:
^[0-2][0-3]:[0-5][0-9]$
Dies passt alles von 00:00 bis 23:59.
Ich möchte es jedoch so ändern, dass 0:00 und 1:00 usw. ebenso wie 00:00 und 01:30 übereinstimmen. Das heißt, die am weitesten links stehende Ziffer optional zu machen, um sowohl HH: MM als auch H: MM zu entsprechen.
Irgendwelche Ideen, wie man diese Änderung vornehmen kann? Ich brauche dies, um sowohl in Javascript als auch in PHP zu arbeiten.
Antworten:
Ihr ursprünglicher regulärer Ausdruck weist Fehler auf: Er würde
04:00
zum Beispiel nicht übereinstimmen .Dies kann besser funktionieren:
quelle
^([0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$
^(?:\d|[01]\d|2[0-3]):[0-5]\d$
Reguläre Ausdrücke für die Zeit
HH: MM 12-Stunden-Format, optional führende 0
HH: MM 12-Stunden-Format, optional führende 0, obligatorische Meridiems (AM / PM)
HH: MM 24 Stunden mit führender 0
HH: MM 24-Stunden-Format, optional führende 0
HH: MM: SS 24-Stunden-Format mit führender 0
Referenz und Demo
quelle
^([0-2][0-3]|[0-1][0-9]):[0-5][0-9]+$
?Keines der oben genannten hat bei mir funktioniert. Am Ende habe ich verwendet:
Logik:
Die erste Zahl (Stunden) ist entweder: eine Zahl zwischen 0 und 19 ->
[0-1]?[0-9]
(erlaubt eine einstellige Zahl)oder
eine Zahl zwischen 20 - 23 ->
2[0-3]
Die zweite Zahl (Minuten) ist immer eine Zahl zwischen 00 und 59 ->
[0-5][0-9]
(ohne eine einzige Ziffer)quelle
[01]
funktioniert genauso gut;)^(0?[1-9]|1[0-2]):[0-5][0-9]$
^([0-1][0-9]|2[0-3]):[0-5][0-9]$
eine führende Null erzwingenSie können diese 24H verwenden, Sekunden sind optional
quelle
Das Beste wäre für HH: MM, ohne ein Risiko einzugehen.
quelle
^([0-1]\d|2[0-3]):[0-5]\d$
?Erstaunlicherweise habe ich festgestellt, dass all dies nicht ganz abdeckt, da sie nicht für ein kürzeres Format von Mitternacht von 0: 0 funktionieren und einige auch nicht für 00:00. Ich habe Folgendes verwendet und getestet:
quelle
Sie können diesen regulären Ausdruck verwenden:
Wenn Sie 00:00 ausschließen möchten, können Sie diesen Ausdruck verwenden
Der zweite Ausdruck ist eine bessere Option, da die gültige Zeit 00:01 bis 00:59 oder 0:01 bis 23:59 ist. Sie können diese nach Ihren Wünschen verwenden. Regex101 Link
quelle
Streichhölzer:
Benutze es:
quelle
DateTime date1 = new DateTime(2008, 1, 1, 6, 9, 1); Console.WriteLine(date1.ToString("H:mm:ss", CultureInfo.InvariantCulture)); // Displays 6:09:01
. Weitere Informationen finden Sie unter LinkDa Sie das Bit ganz links optional gefragt haben, habe ich es auch ganz links und ganz rechts optional gemacht
Es passt zu
Der Live-Link ist hier verfügbar
quelle
Sie können folgenden regulären Ausdruck verwenden:
quelle
Erklären
Diese Methode gibt "true" zurück, wenn der String mit dem regulären Ausdruck übereinstimmt.
quelle
Eine geringfügige Änderung des Beitrags von Manish M Demblani über 4 Uhr morgens (ich habe den Sekundenabschnitt entfernt, da ich ihn in meiner Bewerbung nicht benötige).
Griffe: 4 Uhr 4 Uhr 4 Uhr 4 Uhr 4 Uhr 4 Uhr 4 Uhr 30 Uhr usw.
quelle
AM|am|aM|Am|PM|pm|pM|Pm
=[AaPp][Mm]
Der folgende reguläre Ausdruck hilft bei der Validierung des hh: mm-Formats
quelle
Meins ist:
^(1?[0-9]|2[0-3]):[0-5][0-9]$
Das ist viel kürzer
Habe es mit mehreren Beispielen getestet
Spiel:
Und passt nicht zu einer ungültigen Instanz wie 25:76 usw.
quelle
09:30
nicht übereinstimmenSie können Folgendes versuchen
Es kann die folgenden Muster erkennen:
quelle
Überprüfen Sie diesen Masterfull-Zeitstempel-Detektor- Regex, den ich erstellt habe, um nach einem benutzerdefinierten Zeitstempel zu suchen. Beispiele für die Aufnahme sind, aber definitiv NICHT beschränkt auf;
Es wird auch viel mehr aufnehmen, solange die Zeiten Ziffern enthalten
quelle
RegExr requires a modern browser. Please update your browser to the latest version and try again.
... Ich kann es nicht einmal sehen ...: - /Versuche Folgendes
Hinweis: Ich habe die Javascript-Regex-Engine angenommen. Wenn es anders ist, lass es mich wissen.
quelle
Sie können folgenden regulären Ausdruck verwenden:
Nur die Änderung, die ich vorgenommen habe, ist optional. Der Rest der Regex ist der gleiche.
quelle