La syntaxe des masques utilisés dans ces fonctions ressemble
fort à celle de Perl. Les expressions seront entourées
de délimiteurs, slash (/), par exemple. N'importe quel
caractère peut servir de délimiteur, tant qu'il
n'est pas alpha-numérique ou n'est pas un anti-slash (\).
Si un délimiteur doit être utilisé dans
l'expression, il faudra l'échapper avec un anti-slash.
Depuis PHP 4.0.4, vous pouvez utiliser les délimiteurs
(), {}, [], et <>, comme en Perl.
Voir la syntaxe des masques
pour plus d'explications.
Le délimiteur final peut être suivi d'options qui
affecteront la recherche. Voir aussi
options de recherche.
PHP supporte également les expressions rationnelles utilisant la syntaxe
POSIX étendue (fonctions REGEX POSIX-extended).
Note :
Cette extension maintient un cache global par thread des expressions rationnelles compilées (jusqu'Ã 4096).
À partir de PHP 4.2.0, ces fonctions sont activées par défaut. Pour les
anciennes versions, vous devez configurer et compiler PHP avec
l'option --with-pcre-regex afin
de pouvoir les utiliser. Utilisez --with-pcre-regex=DIR
pour spécifier le répertoire où la bibliothèque PCRE est installée si vous n'utilisez pas la bibliothèque
incluse dans PHP. Pour les versions plus anciennes de PHP,
vous devez configurer et compiler PHP avec
--with-pcre-regex[=DIR]
pour pouvoir utiliser ces fonctions.
La version Windows de PHP
dispose du support automatique de cette extension. Vous n'avez pas à ajouter
de bibliothèque supplémentaire pour disposer de ces fonctions.
Limite de récursivité PCRE. Notez que si vous définissez cette valeur
à un nombre élevé, vous devriez consommer tous les processus disponibles et,
éventuellement, faire crasher PHP (la taille limite de la pile imposée par
le système sera atteinte).
Ces constantes sont définies par cette
extension, et ne sont disponibles que si cette extension a été compilée avec
PHP, ou bien chargée au moment de l'exécution.
Tableau 2. Constantes PREG
Constante
Description
PREG_PATTERN_ORDER
Ordonne les résultats de façon à ce que $matches[0] contienne les
résultats qui correspondent au masque entier, $matches[1] ceux
qui correspondent à la première parenthèse capturante,
$matches[2] ceux qui correspondent à la deuxième
parenthèse capturante, etc. Cette constante est utilisée avec
preg_match_all().
PREG_SET_ORDER
Les résultats sont classés de telle
façon que $matches[0] contient la première
série de résultat, $matches[1] la
deuxième, etc.
Cette constante est utilisée avec preg_match_all().
PREG_OFFSET_CAPTURE
Voir la description de PREG_SPLIT_OFFSET_CAPTURE.
Cette constante est utilisée depuis PHP 4.3.0 .
PREG_SPLIT_NO_EMPTY
Si cette option est activée, seules les sous-chaînes non vides
seront retournées par preg_split().
PREG_SPLIT_DELIM_CAPTURE
Si cette option est activée, les expressions entre parenthèses entre
les délimiteurs de masques seront aussi capturées et retournées.
Cette option a été ajoutée en PHP 4.0.5.
Cette constante est utilisée avec preg_split().
PREG_SPLIT_OFFSET_CAPTURE
Si cette constante est utilisée avec preg_split(),
l'offset de début de résultat sera retourné, en plus de la chaîne
résultat. Notez que cela change la nature du résultat retourné en
un tableau contenant une chaîne à l'offset 0 et une chaîne
contenant un offset à l'offset 1. Cette option est disponible
depuis PHP 4.3.0.
PREG_NO_ERROR
Retourné par la fonction preg_last_error() s'il n'y a pas d'erreur.
Disponible depuis PHP 5.2.0.
PREG_INTERNAL_ERROR
Retourné par la fonction preg_last_error() s'il y a une erreur
interne PCRE. Disponible depuis PHP 5.2.0.
Retourné par la fonction preg_last_error() si la dernière erreur
est du à une malformation des données UTF-8 (uniquement lors de l'exécution
d'une regex en mode UTF-8).
Disponible depuis PHP 5.2.0.