2014-08-29 19 views

Odpowiedz

7

Spróbuj regex

\b[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z\b 

tam:

\b - słowo granicę, by sprawdzić, co na przykład '92014-08-29T06: 44: 03Z' jest nieprawidłowa

[0-9]{n} - dopasuj numer za pomocą n cyfr

Jeśli ciąg znaków musi zawierać tylko datę i godzinę i nie ma innych znaków, następnie użyj:

^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$ 
0

Odpowiedź z felgami na pewno zadziała, oto kilka innych przykładów.

Trochę więcej zwięzłość:

\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z 

Nieco bardziej precyzyjny:

\d{4}-[01]{1}\d{1}-[0-3]{1}\d{1}T[0-2]{1}\d{1}:[0-6]{1}\d{1}:[0-6]{1}\d{1}Z 

Oczywiście, można napisać bardziej zaawansowanych wyrażeń, które są bardziej wydajne niż ten za pomocą przodu i do tyłu przedstawieniu naprawdę upewnij się, że masz sprawdzony w 100% zestaw dozwolonych kombinacji, itd ...

+0

to działało .. dzięki gmiley i feldze –

2

Poniższe wyrażenie regularne akceptuje ciąg daty ISO-8601 UTC zapewniający:

format: RR-MM DDTgg: min: SSZ
przykład: 2016-07-08T12: 30: 00Z

gdzie:
RR = 0000 do 9999
mm = od 01 do 12
DD = 01 do 31
GG = 00 do 23
mm = od 00 do 59
SS = 00 do 59

\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2]\d|3[0-1])T(?:[0-1]\d|2[0-3]):[0-5]\d:[0-5]\dZ 

Możesz przetestować to tutaj: https://regex101.com/r/jE4cE4/1