SunshinePHP Developer Conference 2015

Métacaractères

La puissance des expressions rationnelles provient de leur capacité à autoriser des alternatives et des quantificateurs de répétition dans le masque. Ils sont encodés dans le masque par des métacaractères, qui ne représentent pas ce qu'ils sont, mais sont interprétés d'une certaine manière.

Il y a deux sortes de métacaractères : ceux qui sont reconnus n'importe où dans un masque, hormis entre crochets, et ceux qui sont reconnus entre crochets. À l'extérieur des crochets, les métacaractères sont :

Métacaractère en dehors des crochets
MétacaractèreDescription
\Caractère d'échappement, avec de multiples usages
^Le début de la chaîne sujet (ou de ligne, en mode multilignes)
$La fin de la chaîne sujet ou avant la fin d'une nouvelle ligne (ou fin de ligne, en mode multilignes)
.Remplace n'importe quel caractère, hormis le caractère de nouvelle ligne (par défaut)
[Caractère de début de définition de classe
]Caractère de fin de définition de classe
|Caractère de début d'alternative
(Caractère de début de sous-masque
)Caractère de fin de sous-masque
?Étend le sens de (; quantificateur de 0 ou 1; quantificateur de minimisation (Voir les répétitions)
*Quantificateur de 0 ou plus
+Quantificateur de 1 ou plus
{Caractère de début de quantificateur minimum/maximum
}Caractère de fin de quantificateur minimum/maximum
La partie du masque qui est entourée de crochets est appelée classe de caractères. Dans les classes de caractères, les seuls métacaractères autorisés sont :
Meta-characters dans des crochets (classes de caractères)
MétacaractèreDescription
\Caractère de protection, avec de multiples usages
^Négation de la classe, mais uniquement si placé tout au début de la classe
-Indique un intervalle de caractères
La section suivante décrit l'utilisation de chaque métacaractère.

add a note add a note

User Contributed Notes 1 note

up
-37
ruben dot santacruz at gmail dot com
1 year ago
Note that if you want to match the dollar character and you are using a double quoted string for defining the pattern, you should use \$ but you need to escape both the backslash and the dollar sign itself.

This is because inside a double quoted string PHP will interpret the \$ sequence as a single $ character.

Example:
To match "$5.00" in "I owe you $5.00 exactly", the "/\$5\.00/" pattern will become  "/$5\.00" that it is not the desired pattern. It should be "/\\\$5\.00/" that will become "/\$5\.00/".

My recommendation is to always keep this in mind or use single quoted strings, because single quotes has less escape sequences interpreted.
To Top