Ich mag einen regulären Ausdruck für diese bestimmten Muster erstellen:Regex - Format HH: MM, Stunden> = 24, negativer Wert
- Es mit '+' oder starten sollte '-' oder gar nichts.
- Nummer oder Stunden. Es kann mit beginnen '0' (z 00 => 0, 1 => 1, 01 => 1, 0.000.089 => 89)
- gefolgt von ':'
- Dann wird die Anzahl von Minuten.
(Max 59, es kann auch mit nur einem '0', 09 => 9, 9 => 9 starten) Das ist, was ich bisher habe:
private string regexPattern = @"^" + // Start of string (anchor)
"(" + // begin capturing group
"(+|-)?" + // "+" or "-" - is optional
"(0*)?" + // a "0" - is optional
"[0-9]*" + // accepts any number of digits
")" + // end capturing group
":" + "(" + // start capturing
"[0 - 5]" + // character between 0 and 5
"\\d" + // one digit
")" + // end group
"$"; // end of string anchor
Aber ich erhalte einen Syntaxfehler:
System.ArgumentException : parsing "^((+|-)?(0)?[0-9]+):([0 - 5]\d)$" - Quantifier {x,y} following nothing.
Ich weiß nicht, ob mein Muster korrekt erstellt wird.
Jede Hilfe würde sehr geschätzt werden.
Sie müssen 'escape' die '+' als' \ + 'oder wie pro Ihre Sprache in' (+ | -) ' – rock321987
Sie müssen auch Leerzeichen entfernen zwischen' [0 - 5] ' . Es sollte '[0-5]' – rock321987
ein Regex ist nicht das richtige Werkzeug, um einen Stundenwert zu analysieren. Die Werte in der Regex haben Kontext, in diesem Fall gibt es bessere Werkzeuge. Wenn Sie C# verwenden, ist DateTime.TryParse eine bessere Option. Das Erkennen von 24 vs 34 vs 25 macht Ihre Regex sehr komplex. – Peter