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 09:00] – [Echappements] 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' | ||
Ligne 80: | Ligne 80: | ||
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 103: | 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`. | ||
Ligne 110: | Ligne 110: | ||
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 131: | Ligne 131: | ||
Un mot est défini comme dans la spécification de \[\[:<: | Un mot est défini comme dans la spécification de \[\[:<: | ||
- | 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 137: | 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 164: | 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 192: | 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 202: | 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.1697014831.txt.gz · Dernière modification : 2023/10/11 09:00 de CrazyCat