Services webmasters
Partenaires
Jeux concours gratuits
 
Point
<<<
Crochets Barre verticale
>>>

7.89.9.1 Détails sur les expressions régulières
7.89.9 syntaxe des masques
7.89 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

Crochets

Un crochet ouvrant [ introduit une classe de caractères, et le crochet fermant ] la conclut. Le crochet fermant n'a pas de signification en lui-même. Si le crochet fermant est nécessaire à l'intérieur d'une classe de caractères, il faut qu'il soit le premier caractère (après un ^ éventuel) ou échappé avec un antislash.

Une classe de caractères remplace un seul caractère dans la chaîne sujet, à moins que le premier caractère de la classe soit un accent circonflexe ^ , qui représente une négation : le caractère ne doit pas se trouver dans la classe. Si ^ est nécessaire dans la classe, il suffit qu'il ne soit pas le premier caractère, ou bien qu'il soit échappé avec un antislash.

Par exemple, le caractère [aeiou] remplace n'importe quelle voyelle minuscule, tandis que [^aeiou] remplace n'importe quelle caractère qui n'est pas une voyelle minuscule. ^ est une notation pratique pour spécifier des caractères qui sont dans une classe, en ne citant que ceux qui n'y sont pas. Le comportement est inchangé.

Avec l'option d'insensibilité à la casse, toutes les lettres d'une classe de caractères représentent en même temps la majuscule et la minuscule. Par exemple, [aeiou] représentera " A " ou " a ", et [^aeiou] n'acceptera pas ni " A ", tandis que sans l'option, elle l'accepterait.

Le caractère de nouvelle ligne n'est pas traité de manière spéciale dans les classes de caractères, quelque soit l'option PCRE_DOTALL ou PCRE_MULTILINE . Une classe telle que [^a] acceptera toujours une nouvelle ligne.

Le signe moins ( - ) est utilisé pour spécifier un intervalle de caractères, dans une classe. Par exemple, [d-m] remplace toutes les lettres entre d et m inclus. Si le caractère moins est requis dans une classe, il faut l'échapper avec un antislash, ou le faire apparaître à une position ou il ne pourra pas être interprété comme une indication d'intervalle, c'est-à-dire au début ou à la fin de la classe.

Il n'est pas possible d'avoir le caractère crochet fermant " ] " comme fin d'intervalle. Un masque tel que [W-]46] est compris comme la classe de caractères contenant deux caractères ("W" et "-") suivi de la chaîne littérale "46]", ce qui fait qu'il va accepter " W46] " ou " -46] ". Cependant, si " ] " est échappé avec un antislash, le masque [W-\]46] est interprété comme une classe d'un seul caractère, contenant un intervalle de caractères.

La valeur octale ou hexadécimale de " ] " peut aussi être utilisée pour déterminer les limites de l'intervalle. Les intervalles travaillent sur des séquences ASCII. Ils peuvent aussi être précisées avec des valeurs numériques, par exemple " [\000-\037] ". Si cet intervalle inclut des lettres utilisées avec une option d'insensibilité de casse, les majuscules ou minuscules correspondantes seront aussi incluses. Par exemple, " [C-c] " est équivalent é " [][\^_`wxyzabc] ", avec l'option d'insensibilité de casse. Si la table locale de caractères est "fr", " [\xc8-\xcb] " correspond aux caractères accentués.

Les types de caractères \d , \D , \S , \s , \w , \W peuvent aussi intervenir dans les classes de caractères. Par exemple, " [][\^_`wxyzabc][\dABCDEF] " acceptera n'importe quel caractère hexadécimal. Un accent circonflexe peut aussi être utilisé pour spécifier adroitement des ensembles de caractères plus restrictifs : par exemple [^\W_] accepte toutes les lettres et les chiffres, mais pas les soulignés. Tous les caractères non alpha- numériques autres que \, -, ^ (placés en début de chaîne) et ] n'ont pas de signification particulière, mais ils ne perdront rien à être échappés.

<< Crochets >>
Point Détails sur les expressions régulières Barre verticale
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -