2013-07-30 12 views
5

Sto utilizzando VS 2010 Data Generator per generare stringhe di test in base a un'espressione regolare.C# corrispondente regex a HHMMSS

Al momento ho difficoltà a utilizzare il modello appropriato per generare stringhe di tempo HHMMSS.

Finora ho questo, ma non è del tutto esatto: ([01]?[0-9]|2[0-3])[0-5][0-9][0-5][0-9]

Per esempio un set desiderato sarebbe come: 212013

+1

Il testo della tua domanda rende chiaro - sarà la stringa di uscita hanno delimitatori del colon o no? –

+0

ah, ho lasciato i due punti da test. Per essere chiari, non dovrebbero esserci delimitatori. Proprio come mostra l'esempio. – Lee

+0

Quindi cosa intendi con "non del tutto preciso"? Cosa fa di sbagliato? –

risposta

8

Il seguente dovrebbe soddisfare le vostre esigenze di formato:

([01][0-9]|2[0-3])[0-5][0-9][0-5][0-9] 

La sezione ([01][0-9]|2[0-3]) copre da 00 a 23, mentre [0-5][0-9] copre da 00 a 59.

Nel tuo originale, lo ? stava creando lo zero iniziale o uno opzionale, e potenzialmente generando numeri a cinque cifre non validi.

4

Se non si cura per le regex, come su questo:

var r = new Random(); 
DateTime.FromOADate(r.NextDouble()).ToString("HHmmss") 
+4

OP sta usando un generatore di codice. Presumo che il suo input sia un'espressione regolare, non una riga di codice. –