La séquence (?# marque le début d'un commentaire,
qui se termine à la prochaine parenthèse fermante. Les
parenthèses imbriquées ne sont pas autorisées. Les
caractères entre ces délimiteurs ne jouent alors aucun rôle
dans le masque.
Si l'option PCRE_EXTENDED
est activée, les caractères dièses
# non protégés en dehors d'une classe de
caractères introduisent un commentaire qui continuera jusqu'à
la prochaine ligne dans le masque.
Exemple #1 Usage de commentaire dans un masque PCRE
<?php
$subject = 'test';
/* (?# peut être utilisé pour ajouter des commentaires sans activer PCRE_EXTENDED */
$match = preg_match('/te(?# ceci est un commentaire)st/', $subject);
var_dump($match);
/* Les espaces et # sont traités comme faisant partie du masque sauf si PCRE_EXTENDED est activé */
$match = preg_match('/te #~~~~
st/', $subject);
var_dump($match);
/* Quand PCRE_EXTENDED est activé, tous les caractères d'espacement et tout ce
qui suit un # non échappé sur la même ligne sont ignorés */
$match = preg_match('/te #~~~~
st/x', $subject);
var_dump($match);L'exemple ci-dessus va afficher :
int(1) int(0) int(1)