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.
/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. (), {},
[] et <> sont tous des styles
de crochets valides.
(this [is] a (pattern))
{this [is] a (pattern)}
[this [is] a (pattern)]
<this [is] a (pattern)>
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://#
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.
#[a-z]#i