C#
Numer miesica przed numerem dnia:
DateTime foundDate;
Match matchResult = Regex.Match(SubjectString,
    "^(?<month>[0-3]?[0-9])/(?<day>[0-3]?[0-9])/" +
    "(?<year>(?:[0-9]{2})?[0-9]{2})$");
if (matchResult.Success) {
    int year = int.Parse(matchResult.Groups["year"].Value);
    if (year < 50) year += 2000;
    else if (year < 100) year += 1900;
    try {
        foundDate = new DateTime(year,
            int.Parse(matchResult.Groups["month"].Value),
            int.Parse(matchResult.Groups["day"].Value));
    } catch {
        // Nieprawidowa data.
    }
}


Numer dnia przed numerem miesica:
DateTime foundDate;
Match matchResult = Regex.Match(SubjectString,
    "^(?<day>[0-3]?[0-9])/(?<month>[0-3]?[0-9])/" +
    "(?<year>(?:[0-9]{2})?[0-9]{2})$");
if (matchResult.Success) {
    int year = int.Parse(matchResult.Groups["year"].Value);
    if (year < 50) year += 2000;
    else if (year < 100) year += 1900;
    try {
        foundDate = new DateTime(year,
            int.Parse(matchResult.Groups["month"].Value),
            int.Parse(matchResult.Groups["day"].Value));
    } catch {
        // Nieprawidowa data.
    }
}


Perl
Numer miesica przed numerem dnia:
@daysinmonth = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$validdate = 0;
if ($subject =~ m!^([0-3]?[0-9])/([0-3]?[0-9])/((?:[0-9]{2})?[0-9]{2})$!) {
    $month = $1;
    $day = $2;
    $year = $3;
    $year += 2000 if $year < 50;
    $year += 1900 if $year < 100;
    if ($month == 2 && $year % 4 == 0 && ($year % 100 != 0 ||
                                          $year % 400 == 0)) {
        $validdate = 1 if $day >= 1 && $day <= 29;
    } elsif ($month >= 1 && $month <= 12) {
        $validdate = 1 if $day >= 1 && $day <= $daysinmonth[$month-1];
    }
}


Numer dnia przed numerem miesica:
@daysinmonth = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$validdate = 0;
if ($subject =~ m!^([0-3]?[0-9])/([0-3]?[0-9])/((?:[0-9]{2})?[0-9]{2})$!) {
    $day = $1;
    $month = $2;
    $year = $3;
    $year += 2000 if $year < 50;
    $year += 1900 if $year < 100;
    if ($month == 2 && $year % 4 == 0 && ($year % 100 != 0 ||
                                          $year % 400 == 0)) {
        $validdate = 1 if $day >= 1 && $day <= 29;
    } elsif ($month >= 1 && $month <= 12) {
        $validdate = 1 if $day >= 1 && $day <= $daysinmonth[$month-1];
    }
}


Same wyraenia regularne
Numer miesica przed numerem dnia:
^(?:
  # Luty (maksymalnie 29 dni):
  (?<month>0?2)/(?<day>[12][0-9]|0?[1-9])
|
  # Miesice 30-dniowe:
  (?<month>0?[469]|11)/(?<day>30|[12][0-9]|0?[1-9])
|
  # Miesice 31-dniowe:
  (?<month>0?[13578]|1[02])/(?<day>3[01]|[12][0-9]|0?[1-9])
)
# Rok:
/(?<year>(?:[0-9]{2})?[0-9]{2})$
Opcje wyraenia regularnego: Swobodne stosowanie znakw biaych
Odmiany wyrae regularnych: .NET


^(?:
  # Luty (maksymalnie 29 dni):
  (0?2)/([12][0-9]|0?[1-9])
|
  # Miesice 30-dniowe:
  (0?[469]|11)/(30|[12][0-9]|0?[1-9])
|
  # Miesice 31-dniowe:
  (0?[13578]|1[02])/(3[01]|[12][0-9]|0?[1-9])
)
# Rok:
/((?:[0-9]{2})?[0-9]{2})$
Opcje wyraenia regularnego: Swobodne stosowanie znakw biaych
Odmiany wyrae regularnych: .NET, Java, PCRE, Perl, Python, Ruby


^(?:(0?2)/([12][0-9]|0?[1-9])|(0?[469]|11)/(30|[12][0-9]|0?[1-9])|(0?[13578]|1[02])/(3[01]|[12][0-9]|0?[1-9]))/((?:[0-9]{2})?[0-9]{2})$
Opcje wyraenia regularnego: Brak
Odmiany wyrae regularnych: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby


Numer dnia przed numerem miesica:
^(?:
  # Luty (maksymalnie 29 dni):
  (?<day>[12][0-9]|0?[1-9])/(?<month>0?2)
|
  # Miesice 30-dniowe:
  (?<day>30|[12][0-9]|0?[1-9])/(?<month>0?[469]|11)
|
  # Miesice 31-dniowe:
  (?<day>3[01]|[12][0-9]|0?[1-9])/(?<month>0?[13578]|1[02])
)
# Rok:
/(?<year>(?:[0-9]{2})?[0-9]{2})$
Opcje wyraenia regularnego: Swobodne stosowanie znakw biaych
Odmiany wyrae regularnych: .NET


^(?:
  # Luty (maksymalnie 29 dni):
  ([12][0-9]|0?[1-9])/(0?2)
|
  # Miesice 30-dniowe:
  (30|[12][0-9]|0?[1-9])/([469]|11)
|
  # Miesice 31-dniowe:
  (3[01]|[12][0-9]|0?[1-9])/(0?[13578]|1[02])
)
# Rok:
/((?:[0-9]{2})?[0-9]{2})$
Opcje wyraenia regularnego: Swobodne stosowanie znakw biaych
Odmiany wyrae regularnych: .NET, Java, PCRE, Perl, Python, Ruby


^(?:([12][0-9]|0?[1-9])/(0?2)|(30|[12][0-9]|0?[1-9])/([469]|11)|(3[01]|[12][0-9]|0?[1-9])/(0?[13578]|1[02]))/((?:[0-9]{2})?[0-9]{2})$
Opcje wyraenia regularnego: Brak
Odmiany wyrae regularnych: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby
