Barre verticale <<< |
Options internes | Sous-masques >>> |
7.90.9.1 Détails sur les expressions régulières 7.90.9 syntaxe des masques 7.90 Expressions régulières compatibles Perl 7 Index des fonctions Manuel PHP . Introduction . Méta-caractères . Antislash . Accent circonflexe et Dollar . Point . Crochets . Barre verticale ->Options internes . Sous-masques . Répétitions . Références arrières . Assertions . Sous-masques uniques . Les sous-masques conditionnels . Commentaires . Masques récursifs . Performances |
Options internes
Les options PCRE_CASELESS , PCRE_MULTILINE , PCRE_DOTALL et PCRE_EXTENDED peuvent être changée à l'intérieur du masque lui-même, avec des séquences mises entre " (? " et " ) ". Les options sont :
Le domaine d'application de ces options dépend de la position de la séquence d'option. Pour toutes les séquences d'options qui sont hors des sous-masques (définis plus loin), l'effet est le même que si l'option avait été fixée dès le début de la recherche. Les exemples suivants se comportent tous de la même façons : (?i)abc , a(?i)bc , ab(?i)c , abc(?i) , et sont parfaitement équivalents au masque abc avec l'option PCRE_CASELESS . En d'autres termes, activer des séquences d'options dans le corps principal du masque revient à appliquer l'option à tout le masque, sauf ordre contraire dans les sous-masques. S'il y a plusieurs séquences d'options qui portent sur la même option, la dernière s'appliquera. Si une option intervient dans un sous-masque, le comportement est différent. C'est un changement de comportement apparu en Perl 5.005. Une option à l'intérieur d'un sous-masque n'affecte que cette partie du masque, ce qui fait que (a(?i)b)c acceptera abc et aBc mais aucune autre chaîne (en supposant que PCRE_CASELESS n'est pas utilisé). Cela signifie que les options permettent d'avoir différente configuration de recherche pour différentes parties du masque. Une séquence d'options dans une alternative affecte toute l'alternative. Par exemple : (a(?i)b|c) accepte " ab ", " aB ", " c ", et " C ", même si, comme dans le cas de " C ", la première alternative qui porte l'option n'est pas prise en compte. Sinon, cela risque d'introduire des comportements très étranges : les options spécifiques à PCRE telles que PCRE_UNGREEDY et PCRE_EXTRA peuvent être modifiées de la même manière, en utilisant respectivement les caractères U et X. L'option (?X) est particulière, car elle doit toujours intervenir avant toutes les autres options, même au niveau du masque entier. Il vaut mieux l'activer au début du masque. |
<< | Options internes | >> |
Barre verticale | Détails sur les expressions régulières | Sous-masques |