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 non alpha-numérique autre qu'un backslash ou qu'un espace. Les caractères d'espacement blanc avant un délimiteur valide sont silencieusement ignoré.

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.

/foo bar/
#^[^0-9]$#
+php+
%[a-zA-Z0-9_-]%

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. (), {}, [] and <> sont tous des styles de crochets valides.

(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
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é.

/http:\/\//
#http://#
La fonction preg_quote() peut être utilisée pour échapper une chaine et l'utiliser dans un motif. Son second paramètre optionnel sert à spécifier le délimiteur qui doit être échappé.

Vous pouvez aussi utiliser des modificateurs de motif après le délimiteur final. L'exemple suivant montre une correspondance insensible à la casse.

#[a-z]#i