options de recherche

options de recherche - - Options disponibles pour les expressions régulières .

Description

Les options de PCRE sont listées ci-dessous . Les noms entre parenthèses sont les noms internes à PCRE .

i (PCRE_CASELESS)

Effectue une recherche insensible à la casse .

m (PCRE_MULTILINE)

Par défaut , PCRE traite la chaîne sujet comme une seule ligne ( même si cette chaîne contient des retours chariot ) . Le méta-caractère " début de ligne " (^ ) ne sera valable qu'une seule fois , au début de la ligne , et le méta caractère "fin de ligne " ($ ) ne sera valable qu'à la fin de la chaîne , ou avant le retour chariot final moins que l'option D ne soit activée ) . C' est le même fonctionnement qu 'en Perl .

Lorsque cette option est activée , " début de ligne " et " fin de ligne " correspondront alors aux caractères suivant et précédent immédiatement un caractère de nouvelle ligne , en plus du début et de la fin de la chaîne . C' est le même fonctionnement que l 'option Perl / m . S' il n'y a pas de caractère de nouvelle ligne "\n " dans la chaîne sujet , ou s'il n 'y a aucune occurrence de ^ ou $ dans le masque , cette option ne sert à rien .

s (PCRE_DOTALL)

Avec cette option , le méta caractère point ( . ) remplace n 'importe quel caractère , y compris les nouvelles lignes . Sans cette option , le caractère point ne remplace pas les nouvelles lignes . Cette option est équivalente à l ' option Perl / s . Une classe de caractères négative telle que [ ^a ] acceptera toujours les caractères de nouvelles lignes , indépendamment de cette option .

x (PCRE_EXTENDED)

Avec cette option , les caractères d' espacement sont ignorés , sauf lorsqu'ils sont échappés , ou à l'intérieur d'une classe de caractères , et tous les caractères entre # non échappés et en dehors d 'une classe de caractères , et le prochain caractère de nouvelle ligne sont ignorés . C' est l'équivalent Perl de l'option / x : elle permet l 'ajout de commentaires dans les masques compliqués . Notez bien , cependant , que cela ne s' appliquent qu 'aux caractères de données . Les caractères d' espacement ne doivent jamais apparaître dans les séquences spéciales d'un masque , comme par exemple dans la séquence ( ? ( qui introduit une parenthèse conditionnelle .

E

Avec cette option , preg_replace( ) effectue la substitution normale des références arrières dans la chaîne de remplacement , puis l 'évalue comme un code PHP , et utilise le résultat pour remplacer la chaîne de recherche .

Seule preg_replace( ) utilise cette option . Elle est ignorée par les autres .

A (PCRE_ANCHORED)

Avec cette option , le masque est ancré de force , c' est-à-dire que le masque doit s 'appliquer entre le début et la fin de la chaîne sujet pour être considéré comme trouvé . Il est possible de réaliser le même effet en ajoutant les méta-caractères adéquats , ce qui est la seule manière de le faire en Perl .

E (PCRE_DOLLAR_ENDONLY)

Avec cette option , le méta-caractère $ ne sera valable qu ' à la fin de la chaîne sujet . Sans cette option , $ est aussi valable avant une nouvelle ligne , si cette dernière est le dernier caractère de la chaîne . Cette option est ignorée si l ' option m est activée . Il n' y a pas d 'équivalent en Perl .

S

Lorsqu' un masque est utilisé plusieurs fois , cela vaut la peine de passer quelques instants de plus pour l 'analyser et optimiser le code pour accélérer les traitements ultérieurs . Cette option force cette analyse plus poussée . Actuellement , cette analyse n ' est utile que pour les masques non ancrés , qui ne commencent pas par un caractère fixe .

U (PCRE_UNGREEDY)

Cette option inverse la tendance à la gourmandise des expressions régulières . Vous pouvez aussi inverser cette tendance au coup par coup avec un ? . De même , si cette option est activée , le ? rendra gourmand une séquence . Cette option n ' est pas compatible avec Perl . Elle peut aussi être mise dans le masque avec l ' option ?U .

X (PCRE_EXTRA)

Cette option ajoute d ' autres fonctionnalités incompatible avec le PCRE de Perl . Tous les antislash suivis d' une lettre qui n 'aurait pas de signification particulière cause une erreur , permettant la réservation de ces combinaisons pour des ajouts fonctionnels ultérieurs . Par défaut , comme en Perl , les antislash suivis d ' une lettre sans signification particulière sont traités comme des valeurs littérales . Actuellement , cette option ne déclenche pas d ' autres fonctions .

u (PCRE_UTF8)

Cette option inactive les fonctionnalités additionnelles de PCRE qui ne sont pas compatibles avec Perl . Les chaînes sont traitées comme des chaînes UTF-8 . Cette option est disponible en PHP 4.1.0 et plus récent .