Classes de caractères rationnelles
Conceptions de classes de caractères
Une classe de caractères vous permet de préciser un ensemble de caractères, entre crochets, qui peut produire une correspondance à un seul caractère. Une classe de caractères ne correspond qu’à un seul caractère. Par exemple,
gr[ae]y
correspond à gray
ou grey
, mais pas à graay
ou graey
. L’ordre des caractères entre crochets n’a pas d’importance.Vous pouvez utiliser un trait d’union à l’intérieur d’une classe de caractères pour spécifier une plage de caractères. Exemple :
[a-z]
correspond à une seule lettre minuscule entre a
et z
. Vous pouvez également utiliser plusieurs plages ou une combinaison de plages et de caractères uniques. Exemple : [0-9X]
correspond à un chiffre ou à une lettre X
. L’ordre des caractères et des plages n’a pas d’importance.Un pointage à la suite d’une parenthèse ouvrante indique les caractères à exclure d’une correspondance. Par exemple,
[^abc]
correspond à n'importe quel caractère sauf a
, b
, ou c
.Consolider | Type | Description |
|---|---|---|
[
abc ] | Simple | Degrés de correspondance a ou b ou c
|
[^abc]
| Négation | Correspond à n'importe quel caractère sauf a ou b ou c
|
[a-zA-Z]
| Range | Degrés de correspondance a par l'intermédiaire z , ou A par l'intermédiaire Z (inclusivement) |
[a-d[m-p]]
| Syndicat | Degrés de correspondance a par l'intermédiaire d , ou m par l'intermédiaire p
|
[a-z&&[def]]
| Intersection | Degrés de correspondance d , e , ou f
|
[a-z&&[^xq]]
| Soustraction | Degrés de correspondance a par l'intermédiaire z , à l'exception de x et q
|
Classes de caractères prédéfinies
Les classes de caractères prédéfinies sont des raccourcis pratiques pour les expressions rationnelles couramment utilisées.
Consolider | Description | Exemple |
|---|---|---|
.
| Correspond à n'importe quel caractère (sauf une nouvelle ligne) | .at correspond à « at » « Catégorie » et « rat » dans l'expression « fichiers de lots » |
\d
| Correspond à n'importe quel caractère numérique (équivalent à [0-9] ) | \d correspond à « 3 » dans « C3PO » et à « 2 » dans « file_2.txt » |
\D
| Correspond à n'importe quel caractère non numérique (équivalent à [^0-9] ) | \D correspond à « S » dans « 900S » et à « Q » dans « Q45 » |
\s
| Correspond à n'importe quel caractère d'espace blanc (équivalent à [ \t\n\x0B\f\r] ) | \sbook correspond à « livre » dans « livre bleu », mais ne correspond à rien dans « carnet de notes » |
\S
| Correspond à n'importe quel caractère autre qu'un espace blanc | \Sbook correspond à « livre » dans « carnet de notes », mais ne correspond à rien dans « livre bleu » |
\w
| Correspond à n'importe quel caractère alphanumérique, y compris le trait de soulignement (équivalent à [A-Za-z0-9_] ) | r\w* correspond à « RM » et à « racine » |
\W
| Correspond à n'importe quel caractère non alphanumérique (équivalent à [^A-Za-z0-9_] ) | \W correspond à « & » dans « stmd & », à « % » dans « 100 % » et à « $ » dans « $HAME » |
Classes de caractères POSX (US-ASCII)
POSX dispose d’un ensemble de classes de caractères qui désignent certaines plages communes. Elles sont similaires aux classes de caractères entre crochets et prédéfinies, sauf qu’elles prennent en compte les paramètres régionaux (la langue locale/le système de codage).
Consolider | Description |
|---|---|
\p{Lower}
| Une lettre minuscule, [a-z]
|
\p{Upper}
| Une lettre majuscule, [A-Z]
|
\p{ASCII}
| Un caractère ASCII, [\x00-\x7F]
|
\p{Alpha}
| Une lettre, [a-zA-z]
|
\p{Digit}
| Un chiffre, [0-9]
|
\p{Alnum}
| Un caractère alphanumérique, [a-zA-z0-9]
|
\p{Punct}
| Un caractère de ponctuation, l'un des suivants !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
|
\p{Graph}
| Un caractère visible, [\p{Alnum}\p{Punct}]
|
\p{Print}
| Un caractère imprimable, [\p{Graph}\x20]
|
\p{Blank}
| Une espace ou une touche de tabulation, [ t]
|
\p{Cntrl}
| Un caractère de contrôle, [\x00-\x1F\x7F]
|
\p{XDigit}
| Un chiffre hexadécimal, [0-9a-fA-F]
|
\p{Space}
| Un caractère d’espace blanc, [ \t\n\x0B\f\r]
|