LXXXVIII. Expressions régulières compatibles Perl

Introduction

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 antislash (\). Si un délimiteur doit être utilisé dans l'expression, il faudra l'échapper avec un antislash. Depuis PHP 4.0.4, vous pouvez utiliser les délimiteurs (), {}, [], et <>, comme en Perl.

Le délimiteur final peut être suivi d'options qui affecteront la recherche. Voir aussi options de recherche.

Pré-requis

Le support des expressions régulières est assuré par la librairie PCRE, qui est open source, et écrite par Philip Hazel. Elle est soumise au copyright de l'University of Cambridge, Angleterre. Elle est disponible à ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/.

Installation

A partir de PHP 4.2.0, ces fonctions activées par défaut. Pour les anciennes versions, vous devez configurer et compiler PHP avec l'option --with-pcre-regex[=DIR] afin de pouvoir les utiliser. Vous pouvez aussi désactiver le support des expressions régulières avec l'option --without-pcre-regex.

La version windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de librairie supplémentaire pour disposer de ces fonctions.

Configuration à l'exécution

Cette extension ne définit aucune directive de configuration.

Types de ressources

Cette extension ne définit aucune ressource.

Constantes Prédefinies

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 1. Constantes PREG

ConstanteDescription
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] contienne les résultats qui correspondent à la première parenthèse capturante, $matches[2] contienne les résultats 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] contient la deuxième série de résultat, 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.

Exemples

Exemple 1. Exemples de masques valides

  • /<\/\w+>/

  • |(\d{3})-\d+|Sm

  • /^(?i)php[34]/

  • {^\s+(\s+)?$}

Exemple 2. Exemples de masques invalides

  • /href='(.*)' - délimiteur final manquant

  • /\w+\s*\w+/J - option 'J' inconnue

  • 1-\d3-\d3-\d4| - délimiteur initial manquant

Table des matières
options de recherche --  Options disponibles pour les expressions régulières.
syntaxe des masques --  Fonctionnement des expressions régulières.
preg_grep -- Retourne un tableau avec les résultat de la recherche
preg_match_all -- Expression régulière globale
preg_match -- Expression régulière standard
preg_quote --  Echappement des caractères spéciaux des expressions régulières.
preg_replace_callback -- Rechercher/remplacer avec une expression régulière et fonction de callback
preg_replace --  Rechercher et remplacer par expression régulière standard.
preg_split --  Eclatement d'une chaîne par expression régulière.