root/documentation/regexp.txt

Revision 29, 5.0 kB (checked in by jean, 7 months ago)

corrections dans les sources

Line 
1 source : http://www.expreg.com/symbole.php
2
3 Les Symboles dans les Expressions Régulières
4
5 Quelques explications sur les différents symboles utilisés dans les expressions régulières.
6
7 Une des premières choses à réaliser dans la conception d'une expression régulière, c'est de définir le motif (pattern)
8
9 Pour construire ces motifs, vous avez besoin de créer une structure formée de caractères littéraux, puis de symboles qui sont définis en tant que métacaractères et délimiteurs et qui seront utilisés séparément ou en combinaison à l'intérieur d'un même groupement ou d'une classe.
10
11
12 1) Les caractères littéraux
13 On appelle littéral une valeur qui est écrite exactement comme elle est interprétée.
14 Exemple :
15
16 Littéraux       Signification
17 a               correspond à la lettre "a" et rien d'autre
18 chat            correspond au mot "chat" et rien d'autre
19 toto            correspond au mot "toto" et rien d'autre
20
21
22 Vous constatez que les littéraux permettent une identification exacte et précise du motif recherché. L'intérêt des expressions régulières ne serait pas bien grand si elles étaient limitées à cette seule possibilité.
23
24 2) Les symboles de début et fin de chaine et le point .
25 L'accent circonflexe ^ et le symbole dollar $ et enfin le point .
26
27 Symbole         Description
28 ^               Indique le début de la chaine - exemple ^chat reconnaît une ligne qui commence par chat
29 $               Indique la fin de la chaine - exemple : chat$ reconnaît une ligne qui finit par chat
30 .               Le point indique n'importe quel caractère
31
32
33 3) Les symboles quantificateurs
34 Ils sont au nombre de trois :
35 le point d'interrogation (?), l'étoile (*) et le plus (+)
36
37 Symbole         Description
38 *               Indique 0, 1 ou plusieurs occurences du caractère ou de la classe précedente
39 +               Indique une ou plusieurs occurences du caractère ou de la classe précedente
40 ?               Indique 0 ou une occurence du caractère ou de la classe précedente
41
42
43
44 Exemple :
45 a* correspond à aucune ou plusieurs occurences de la lettre (a)
46 soit pas de a, ou a, aa, aaa, aaaa, etc...
47 a+ correspond à une ou plusieurs occurences de la lettre (a)
48 soit au moins un a ou aa, aaa, aaaa, etc...
49 a? correspond à 0 ou une seule occurence de la lettre (a)
50 soit a ou pas de a
51
52 4) Les intervalles de reconnaissance
53 Ce sont les accolades { }
54
55 Exemple         Signification
56 a{3}    correspond exactement à aaa
57 a{2,}   correspond à un minimum de deux a consécutifs
58 soit aa, aaa, aaaaa....
59 a{2,4}  correspond uniquement à aa, aaa, aaaa
60
61
62 5) Les classes de caractères
63 Délimitées grâce aux crochets [ ]
64
65 Exemple         Signification
66 [..-..]                 Le tiret représente l'intervalle à l'intérieur de la classe
67 Il s'agit d'un métacaractère s'il est placé dans cette position. Pour permettre sa lecture en tant que caractère "tiret" il convient de le placer en début de la classe comme ceci [-....]
68 br[iu]n         ce qui signifie, trouver br suivi de i ou de u suivi de n comme brun ou brin
69 <h[123456]>     exemple de recherche sur une balise de titre
70 <h1> <h2> <h3>, etc...
71
72
73 6) Les classes pré-définies
74
75 Classe  Signification
76 [[:alpha:]]     n'importe quelle lettre
77 [[:digit:]]     n'importe quel chiffre
78 [[:xdigit:]]    caractères héxadécimaux
79 [[:alnum:]]     n'importe quelle lettre ou chiffre
80 [[:space:]]     n'importe quel espace blanc
81 [[:punct:]]     n'importe quel signe de ponctuation
82 [[:lower:]]     n'importe quelle lettre en minuscule
83 [[:upper:]]     n'importe quelle lettre capitale
84 [[:blank:]]     espace ou tabulation
85 [[:graph:]]     caractères affichables et imprimables
86 [[:cntrl:]]     caractères d'échappement
87 [[:print:]]     caractères imprimables exceptés ceux de contrôle
88
89
90 7) L'alternative, l'intervalle et la classe complémentée
91 Réalisé avec la barre | et le tiret - et l'accent circonflexe ^ à l'intérieur des crochets [ ]
92 La barre verticale | peut également être positionnée entre des parenthèses dans la recherche du motif (voir * dans le tableau exemple)
93 Exemple :
94
95 Exemple         Signification
96 <h[1-6]>        intervalle de recherche de 1 à 6 - affichera les balises de titre <h1> <h2> etc... jusque <h6>
97 [0-9]   tous les chiffres de 0 à 9, etc...
98 p(ai|i)n        la barre verticale détermine une alternative
99 ce qui signifie tout ce qui s'écrit pain ou pin
100 L'alternative dans le motif lui-même
101 ^(De|A):@       détermine une alternative dans le motif
102 ce qui signifie tout ce qui commence par De:@ ou A:@
103 La classe complémentée
104 [^1]    classe complémentée ce qui signifie reconnaître tout sauf ce qui est énuméré, ici, tout sauf le chiffre 1
105 [^1-6]  classe complémentée ce qui signifie reconnaître tout sauf ce qui est énuméré, ici, tout sauf les chiffres de 1 à 6
106
107
108 Tableau récapitulatif
109
110 .       le point        n'importe quel caractère
111 [...]   classe de caractères    tous les caractères énumérés dans la classe
112 [^...]  classe complémentée     Tous les caractères sauf ceux énumérés
113 ^       circonflexe     positionne le début de la chaine, la ligne...
114 $       dollar  marque la fin d'une chaine, ligne...
115 |       barre verticale         alternative - ou reconnaît l'un ou l'autre
116 (...)   parenthèse      utilisée pour limiter la portée d'un masque ou de l'alternative
117 *       astérisque      0, 1 ou plusieurs occurences
118 +       le plus         1 ou plusieurs occurence
119 ?       interrogation   0 ou 1 occurence
Note: See TracBrowser for help on using the browser.