Łączenie wyrażeń regularnych

0

Chce napisać bardzo proste wyrażenie regularne sprawdzające poprawność daty (format dd.mm). Napisałem coś takiego:

 Regex reg = new Regex(@"^[1|3|5|7|8|10|12][/.]([1-9]|[1-2][0-9]|3[0-1])$");
 //Regex reg = new Regex(@"^[2]{1}[./]([1-9]|[1][0-9]|[2][0-8])$");
// Regex reg = new Regex(@"^[4|6|9|11]{1}[/.](0[1-9])|([1-2][0-9])|([30])$");

Tylko nie wiem jak zrobić z tego jedno wyrażenie? Myślałem że wystarczy tak:

Regex reg = new Regex(@"^([1|3|5|7|8|10|12][/.]([1-9]|[1-2][0-9]|3[0-1]))) | ([2]{1}[./]([1-9]|[1][0-9]|[2][0-8])) | ([4|6|9|11]{1}[/.](0[1-9])|([1-2][0-9])|([30]))$";

...ale okazało sie, że tak nie można. Z góry dzięki za pomoc

1

| działa tylko w grupach. ((a|b|c), ale a|b|c już nie)

Co do tematu, czy do sprawdzanie nie wystarczy taki regex?
^((?!0)[1-2]?[0-9]|30|31)\.([1-9]|10|11|12)$

0
Tezcatlipoca napisał(a)

| działa tylko w grupach. ((a|b|c), ale a|b|c już nie)

Co do tematu, czy do sprawdzanie nie wystarczy taki regex?
^((?!0)[1-2]?[0-9]|30|31)\.([1-9]|10|11|12)$

Dzięki, ale najbardzie to zależy mi żeby to wyrażenie sprawdzało ile dni ma dany miesiąc. Ma ktoś jeszcze jakieś pomysły?

0

Dzięki, ale najbardzie to zależy mi żeby to wyrażenie sprawdzało ile dni ma dany miesiąc. Ma ktoś jeszcze jakieś pomysły?

Kombinujesz. Jeden if i funkcja sprawdzająca czy rok jest przestępny. Robienie tego na wyrażeniu regularnym to WTF.

1 użytkowników online, w tym zalogowanych: 0, gości: 1