Délimiteurs
Lors de l'utilisation des fonctions PCRE, il est nécessaire que le motif soit encadré
par des délimiteurs. Un délimiteur peut être n'importe quel caractère
sur un seul octet non alpha-numérique autre qu'un backslash, un octet NUL ou un espace blanc.
Les caractères d'espacement blanc avant un délimiteur valide sont silencieusement ignorés.
Note:
Les caractères multi-octets (tels que les caractères encodés en UTF-8 comme
§) ne peuvent pas être utilisés comme délimiteurs.
PHP lit exactement un octet comme délimiteur ; utiliser un caractère
multi-octets ferait interpréter à tort les octets restants comme des
options de motif inconnues.
Les délimiteurs les plus courants sont les slashes (/), dièses
(#) et les tildes (~). Les exemples suivants ont
tous des motifs encadrés avec des délimiteurs valides.
Il est également possible d'utiliser les délimiteurs utilisant les crochets
où les crochets ouvrants et fermants sont respectivement les délimiteurs de
début et de fin. (), {},
[] et <> sont tous des styles
de crochets valides.
Les délimiteurs utilisant les crochets n'ont pas besoin d'être échappés lorsqu'ils
sont utilisés comme caractères méta dans un masque, mais, comme tout autre opérateur,
ils doivent être échappés s'ils sont utilisés comme caractères littéraux.
Si le délimiteur doit être décrit dans le motif, il doit être échappé avec un backslash.
Si le délimiteur apparait souvent dans le motif, choisir un autre délimiteur est une bonne
idée pour en augmenter la lisibilité.
La fonction
preg_quote() peut être utilisée pour échapper une chaîne
et l'utiliser dans un motif. Son second paramètre optionnel sert à spécifier le délimiteur
qui doit être échappé.
Il est aussi possible d'utiliser des
modificateurs de motif après le délimiteur final. L'exemple suivant montre
une correspondance insensible à la casse.