tfe - tfeserver homepage

Regex: verification de dates

Catégorie Perl - posté le 20/06/08 13:06:49

Pour combler ce temps d'une façon ou d'une autre (et pour contredire une certaine personne sur IRC de la faisabilité de la chose), je me suis amusé à créer une regex vérifiant une date.

Certes, la regex est vraiment illisible, mais elle marche plutôt bien.

Un exemple d'utilisation:
$date="28/02/08 13:53";
if($date =~ /^
 (?:
     (?:
        (?:(?:[0-2][0-9]?)|(?:3[0-1]))
        \/
        (?:(?:0?[13578])|(?:1[02]))
      )|
      (?:(?:(?:[0-2][0-9]?)|30)\/(?:(?:0?[469])|11))
        |
      (?:
        (?:
          (?:[0-1][0-9]?)|2[0-8])\/(?:0?2)
      )
  )\/\d{2}(?:\d{2})?\s+(?:[0-1]?[0-9]|2[0-4]):(?:[0-5]?[0-9])$/x)
{
    print "Date oK\n";
}

ou sa version 1 ligne:
/^(?:(?:(?:(?:[0-2][0-9]?)|(?:3[0-1]))\/(?:(?:0?[13578])|(?:1[02])))|
(?:(?:(?:[0-2][0-9]?)|30)\/(?:(?:0?[469])|11))|(?:(?:(?:[0-1][0-9]?)|
2[0-8])\/(?:0?2)))\/\d{2}(?:\d{2})?\s+(?:[0-1]?[0-9]|2[0-4]):(?:[0-5]?[0-9])$/x
Note: les années bissextiles ne sont pas prises en compte malheureusement...

Pour ceux désirant une version simple, ne vérfiant que les formats numériques
/^(\d\d?)\/(\d\d?)\/((?:\d\d){1,2})/


Exemple d'utilisation PHP:
if( preg_match("/^(\d\d?)\/(\d\d?)\/((?:\d\d){1,2})/",$mdate))
{
      echo "la date est correcte"; 
}
Exemple d'utilisation Perl:
if($mdate=~ /^(\d\d?)\/(\d\d?)\/((?:\d\d){1,2})/)
{
      print "la date est correcte";
}

4 commentaire(s) perl irc regex verification date

Exercice de Regex?

Catégorie blog - posté le 08/03/05 00:00:00

Ben voila, je dois tellement m'ennuyer que je mets a re-faire des regex pour le fun. Toujours LA regex que j' aime reconstruire une et autres fois ... celle qui grabbe les urls.

voir ici.Avec

$url = $1 ? $1 : "";

$protocol = $2 ? $2 : "";

$fhost = $3 ? $3 : "";

$mhost = $4 ? $4 : "";

$port = $5 ? $5 : "";

Bientot les resultats en live? :)

Update: Section url cree.

0 commentaire(s) irc regex