faq:re_syntax
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
faq:re_syntax [2023/10/11 08:53] – CrazyCat | faq:re_syntax [2023/10/19 12:52] (Version actuelle) – [Expressions rationnelles basiques] CrazyCat | ||
---|---|---|---|
Ligne 62: | Ligne 62: | ||
Par exemple, supposez une séquence d' | Par exemple, supposez une séquence d' | ||
- | Dans une expression crochet, un élément d' | + | Dans une expression crochet, un élément d' |
Dans une expression crochet, le nom d'une character class entourée de [: et :] équivaut à la liste de tous les caractères (pas tous les éléments d' | Dans une expression crochet, le nom d'une character class entourée de [: et :] équivaut à la liste de tous les caractères (pas tous les éléments d' | ||
- | + | * alpha Une lettre | |
- | alpha Une lettre. upper Une lettre majuscule. [2bgerror] | + | * upper Une lettre majuscule |
+ | * lower Une lettre minuscule | ||
+ | * digit Un chiffre décimal | ||
+ | * xdigit Un chiffre hexadécimal | ||
+ | * alnum Un caractère alphanumérique (lettre ou chiffre) | ||
+ | * print Un caractère alphanumérique (même que alnum) | ||
+ | * blank Un espace ou tabulation | ||
+ | * space Un caractère produisant un espace dans du texte affiché | ||
+ | * punct Un caractère de ponctuation | ||
+ | * graph Un caractère avec une représentation visible | ||
+ | * cntrl Un caractère de contrôle. | ||
Une locale peut en fournir d' | Une locale peut en fournir d' | ||
- | Il y a deux cas spéciaux d' | + | Il y a deux cas spéciaux d' |
==== Echappements ==== | ==== Echappements ==== | ||
Ligne 82: | Ligne 92: | ||
* < | * < | ||
* < | * < | ||
- | * < | + | * < |
* < | * < | ||
* < | * < | ||
Ligne 93: | Ligne 103: | ||
* < | * < | ||
* < | * < | ||
- | * < | + | * < |
- | Les chiffres Hexadécimaux sont `0'-`9', `a-`f', et `A'-`F'. Les chiffres Octaux sont `0'-`7'. | + | Les chiffres Hexadécimaux sont `0`-`9`, `a`-`f`, et `A`-`F`. Les chiffres Octaux sont `0`-`7`. |
- | Les échappements caractère-entrée sont toujours interprétés comme des caractères ordinaires. Par exemple, \135 est ] en ASCII, mais \135 ne peut terminer une expression crochet. Attention, néanmoins, que quelque application (ex.,un compilateur C) n' | + | Les échappements caractère-entrée sont toujours interprétés comme des caractères ordinaires. Par exemple, \135 est ] en ASCII, mais \135 ne peut terminer une expression crochet. Attention, néanmoins, que quelque application (ex.,un compilateur C) n' |
Les échappements Class-shorthand (AREs seulement) fournissent des raccourcis pour certaines classes de caractère communément utilisées: | Les échappements Class-shorthand (AREs seulement) fournissent des raccourcis pour certaines classes de caractère communément utilisées: | ||
- | * \d \[\[: | + | * \d < |
- | * \s \[\[: | + | * \s < |
- | * \w \[\[:alnum:]_] (notez l' | + | * \w < |
* \D [^[: | * \D [^[: | ||
* \S [^[: | * \S [^[: | ||
Ligne 119: | Ligne 129: | ||
* \mnn (où m est un chiffre non nul, et nn sont d' | * \mnn (où m est un chiffre non nul, et nn sont d' | ||
- | Un mot est défini comme dans la spécification de [[:<:]] et [[:>:]] plus haut. Constraint escapes sont illégales dans les expressions crochets. | + | Un mot est défini comme dans la spécification de \[\[:<:]] et \[\[:>:]] plus haut. Constraint escapes sont illégales dans les expressions crochets. |
- | Une back référence (AREs seulement) correspond à la même chaîne que celle qui correspond aux sous expressions entre parenthèses spécifié par les nombres, ainsi ([bc])\1 correspond bb ou cc mais pas `bc'. La sous expression doit entièrement précéder la back référence dans la RE. Les sous expressions sont numérotées dans l' | + | Une back référence (AREs seulement) correspond à la même chaîne que celle qui correspond aux sous expressions entre parenthèses spécifié par les nombres, ainsi ([bc])\1 correspond bb ou cc mais pas `bc`. La sous expression doit entièrement précéder la back référence dans la RE. Les sous expressions sont numérotées dans l' |
Il y a une ambiguïté inhérente historique entre les échappements caractère-entrée octal et les back références, | Il y a une ambiguïté inhérente historique entre les échappements caractère-entrée octal et les back références, | ||
Ligne 127: | Ligne 137: | ||
En plus de la syntaxe principale décrite plus haut, il y a quelques formes spéciales et diverses facilités syntaxiques disponibles. | En plus de la syntaxe principale décrite plus haut, il y a quelques formes spéciales et diverses facilités syntaxiques disponibles. | ||
- | Normalement la sorte de RE utilisée est spécifiée par l' | + | Normalement la sorte de RE utilisée est spécifiée par l' |
Une ARE peut commencer avec des contenue options: une séquence (?xyz) (où xyz est un ou plusieurs caractères alphabétiques) spécifie les options affectant le reste de la RE. Ceci vient en supplément, | Une ARE peut commencer avec des contenue options: une séquence (?xyz) (où xyz est un ou plusieurs caractères alphabétiques) spécifie les options affectant le reste de la RE. Ceci vient en supplément, | ||
Ligne 154: | Ligne 164: | ||
Finalement, dans une ARE, en dehors des expressions crochet, la séquence `(?#ttt)` (où ttt est un texte quelconque ne contenant pas de `)`) est un commentaire, | Finalement, dans une ARE, en dehors des expressions crochet, la séquence `(?#ttt)` (où ttt est un texte quelconque ne contenant pas de `)`) est un commentaire, | ||
- | Aucune de ces extensions de méta-syntaxe ne sont disponibles si l' | + | Aucune de ces extensions de méta-syntaxe ne sont disponibles si l' |
==== Correspondances ==== | ==== Correspondances ==== | ||
Dans l’événement où une RE peut correspondre à plus d'une sous chaîne d'une chaîne donnée, la RE correspond à la première occurrence dans la chaîne. Si la RE peut correspondre à plus d'une sous chaîne commençant à ce point, le choix est déterminé par sa préférence: | Dans l’événement où une RE peut correspondre à plus d'une sous chaîne d'une chaîne donnée, la RE correspond à la première occurrence dans la chaîne. Si la RE peut correspondre à plus d'une sous chaîne commençant à ce point, le choix est déterminé par sa préférence: | ||
Ligne 182: | Ligne 192: | ||
Les règles de correspondance pour les REs contenant à la fois des quantificateurs normaux et non-greedy ont changé depuis les premières versions beta-test de ce package. (Les nouvelles règles sont plus simples et plus propre, mais ne travaillent pas trop dur pour deviner les intentions réelles de l' | Les règles de correspondance pour les REs contenant à la fois des quantificateurs normaux et non-greedy ont changé depuis les premières versions beta-test de ce package. (Les nouvelles règles sont plus simples et plus propre, mais ne travaillent pas trop dur pour deviner les intentions réelles de l' | ||
- | Le package original regexp de 1986 par Henry Spencer, toujours largement utilisé (ex., dans les pre-8.1 releases de Tcl), implémentait une première version des EREs d' | + | Le package original regexp de 1986 par Henry Spencer, toujours largement utilisé (ex., dans les pre-8.1 releases de Tcl), implémentait une première version des EREs d' |
Dans les AREs, \ suivi d'un caractère alphanumérique est soit un échappement soit une erreur, alors que dans les RREs, c' | Dans les AREs, \ suivi d'un caractère alphanumérique est soit un échappement soit une erreur, alors que dans les RREs, c' | ||
Ligne 192: | Ligne 202: | ||
AREs rapporte la plus longue/plus courte correspondance de la RE, plutôt que le premier trouvé dans l' | AREs rapporte la plus longue/plus courte correspondance de la RE, plutôt que le premier trouvé dans l' | ||
==== Expressions rationnelles basiques ==== | ==== Expressions rationnelles basiques ==== | ||
- | Les BREs diffèrent des EREs sous plusieurs aspects `|`, `+`, et ? sont des caractères ordinaires et il n'y a pas d' | + | Les BREs diffèrent des EREs sous plusieurs aspects: |
+ | * `|`, `+`, et ? sont des caractères ordinaires et il n'y a pas d' | ||
+ | * Les délimiteurs des intervalles sont `\{` et `\}`, avec les <kbd>{</ | ||
+ | * Les parenthèses des sous expressions imbriquées sont `\(` et `\)`, avec les <kbd>(</ | ||
+ | * `^` est un caractère ordinaire excepté au début de la RE ou au début d'une sous expressions entre parenthèses, | ||
+ | * Finalement, les back références à un seul chiffre sont disponibles, | ||
+ | ===== Voir aussi ===== | ||
+ | [[: | ||
+ | {{tag> |
faq/re_syntax.1697014418.txt.gz · Dernière modification : 2023/10/11 08:53 de CrazyCat