-- Chaîne se terminant par .tgz .*\.tgz -- Par exemple : abc.tgz abc.def.tgz -- Chaîne se terminant par .tar.gz .*\.tar\.gz -- Par exemple : abc.tar.gz abc.def.tar.gz -- Chaîne se terminant par .tgz ou .tar.gz (.*\.tgz|.*\.tar\.gz) -- Date en format ISO 8601 AAAA-MM-JJ -- Ceci n'est pas totalement exact car je considère tous les mois comme -- étant de 31 jours et je ne distingue pas les années bissextiles ! [[:digit:]]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]) -- Correspond à 2011-11-21 1967-04-01 2000-02-31 -- Mais pas à 20111-11-21 1967-13-01 2000-03-32 -- L'heure en format ISO 8601 hh:mm:ss ([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9] -- Correspond à 00:00:00 08:30:45 19:45:59 -- Mais pas à 24:00:00 08:60:00 19:45:60 -- Numéro de téléphone nord-américain avec l'indicatif régional comme -- (514) 987-3000. -- Un indicatif doit débuter par un 2-9. La même contrainte s'applique -- au numéro de téléphone lui-même. \([2-9][0-9]{2}\) [2-9][0-9]{2}-[0-9]{4} -- Correspond à (514) 987-3000 (256) 254-0000 -- mais pas à (123) 987-3000 (514) 187-3000 (000) 000-0000 -- Appel de fonction C++ à deux arguments. Attention, ici on ne peut pas vraiment vérifier la structure des arguments ! [[:alpha:]_][[:alnum:]_]*\(.*,.*\) -- Correspond à f(0,1) f(abc,def) f(f,10) f(f(,g(f() -- Ne correspond pas à a(0) 0(1,0) fonction(0,1 fonction -- Adresse de courriel. Ceci est une version TRÈS simplifiée qui accepte une chaîne quelconque dans la mesure où -- elle ne contient qu'un seule @. [^@]+@[^@]+ -- Correspond à villemaire.roger@uqam.ca roger@uqam.ca r@uqam r@u -- Ne correspond pas à villemaire@roger@uqam.ca villemaire roger@ @abc @