regex

preg_match

Regex quick reference

[abc] A single character: a, b or c
[^abc] Any single character but a, b, or c
[a-z] Any single character in the range a-z
[a-zA-Z] Any single character in the range a-z or A-Z
^ Start of line
$ End of line
\A Start of string
\z End of string
. Any single character
\s Any whitespace character
\S Any non-whitespace character
\d Any digit
\D Any non-digit
\w Any word character (letter, number, underscore)
\W Any non-word character
\b Any word boundary character
(…) Capture everything enclosed
(a|b) a or b
a? Zero or one of a
a* Zero or more of a
a+ One or more of a
a{3} Exactly 3 of a
a{3,} 3 or more of a
a{3,6} Between 3 and 6 of a

options: i case insensitive m make dot match newlines x ignore whitespace in regex o perform #{…} substitutions only once

Vérifier si une chaine de caractère contient des chiffres

if(preg_match('#[0-9]#', "Je contiens quelques chiffres 0 1 2 3 "))
  echo "VRAI cette chaine contient des chiffres";
else
  echo "FAUX il n'y a pas de chiffres dans cette chaine";

S’assurer qu’une chaine ne contienne QUE des lettres de l’alphabet ou des chiffres ou des tirets ou des tirets bas.

if(!preg_match('#[^a-zA-Z0-9_-]#', "toto"))
  echo "VRAI ma chaine est conforme, il n'y a rien d'autre que des lettres, chiffres, tiret ou tiret bas";
else
  echo "FAUX ma chaine contient un caractère non autorisé!!!";