Schémas

Classe de caractères

Une classe de caractères est utilisée pour représenter un ensemble de caractères. Les combinaisons suivantes sont autorisées pour décrire une classe de caractères :
  • x : (où x n'est pas un des caractères magiques ^$()%.[]*+- ?) représente le caractère x lui-même.
  • . : (un point) représente tous les caractères.
  • %a : représente toutes les lettres.
  • %c: représente tous les caractères de contrôle.
  • %d: représente tous les chiffres.
  • %l : représente toutes les lettres minuscules.
  • %p : représente tous les caractères de ponctuation.
  • %s: représente tous les caractères d'espacement.
  • %u: représente toutes les lettres majuscules.
  • %w : représente tous les caractères alphanumériques.
  • %x: représente tous les chiffres hexadécimaux.
  • %z : représente le caractère avec la représentation 0.
  • %x: (où x est un caractère non alphanumérique) représente le caractère
  • x. C'est la façon standard d'échapper aux caractères magiques. Tout caractère de ponctuation (même ceux qui ne sont pas magiques) peut être précédé d'un "%" lorsqu'il est utilisé pour se représenter dans un motif.

[set]:représente la classe qui est l'union de tous les caractèresinsérés. Une plage de caractères peut être spécifiée en séparant les caractères de fin de plage par un '-. Toutes les classes " %x décrites ci-dessus peuvent également être utilisées comme composants dans un ensemble. Tous les autres personnages du jeu se représentent eux-mêmes. Par exemple, " [%w_] (ou [_%w]) représente tous les caractères alphanumériques plus le trait de soulignement, [0-7] représenteles chiffres octaux, et " [0-7%l%-] " représente les chiffres octaux plus les lettres minuscules plus le caractère ''-'.

L'interaction entre les plages et les classes n'est pas définie. Par conséquent, des motifs tels que " [%a-z] ou " [a-% "%] n'ont aucune signification.

[^set]:représente le complément de l'ensemble, lorsquel'ensemble est interprété comme ci-dessus.

Pour toutes les classes représentées par des lettres simples (%a, " %c, etc.), la lettre majuscule correspondante représente le complément de la classe. Par exemple, " %S représente tous les caractères qui ne sont pas des espaces.

Les définitions des lettres, des espaces et des autres groupes de caractères dépendent de la locale actuelle. En particulier, la classe " [a-z] peut ne pas être équivalente à " %l.

Élément de modèle

Un élément de modèle peut être :
  • Une classe de caractères unique, qui correspond à n'importe quel caractère de la classe.
  • Une classe de caractères unique suivie de"*", qui correspond à 0 répétition ou plus des caractères de la classe. Ces éléments de répétition correspondront toujours à la séquence la plus longue possible.
  • Une classe de caractères unique suivie de"+", qui correspond à une ou plusieurs répétitions de caractères dans la classe. Ces éléments de répétition correspondront toujours à la séquence la plus longue possible.
  • Une classe de caractères unique suivie de"-", qui correspond également à 0 répétition ou plus des caractères de la classe. Contrairement à"*", ces éléments de répétition correspondent toujours à la séquence la plus courte possible.
  • Une classe d'un seul caractère suivie de "?", qui correspond à 0 ou 1 occurrence d'un caractère dans la classe.
  • %n, pour n compris entre 1 et 9 ; cet élément correspond à une sous-chaîne égale à la n-ième chaîne capturée (voir ci-dessous).
  • %bxy, où x et y sont deux caractères distincts ; cet élément correspond aux chaînes qui commencent par x, se terminent par y, et où x et y sont équilibrés. Cela signifie que, si l'on lit la chaîne de gauche à droite, en comptant +1 pour un x et -1 pour un y, le y de fin est le premier y où le compte atteint 0. Par exemple, l'élément " %b() correspond à des expressions avec des parenthèses équilibrées.

Schéma

Un modèle est une séquence d'éléments de modèle. Un ''^ au début d'un motif ancre la correspondance au début de la chaîne du sujet. Un ''$ à la fin d'un motif ancre la correspondance à la fin de la chaîne du sujet. Dans les autres positions, ''^ et ''$' n'ont pas de signification particulière et se représentent eux-mêmes.

Captures

Un motif peut contenir des sous-motifs entre parenthèses ; ils décrivent des captures. Lorsqu'une correspondance réussit, les sous-chaînes de la chaîne de l'objet que la correspondance capture sont stockées(capturées) en vue d'une utilisation ultérieure. Les captures sont numérotées en fonction de leur parenthèse gauche. Par exemple, dans le motif " "(a*(.)%w(%s*))", la partie de la chaîne correspondant à "a*(.)%w(%s*)" est stockée en tant que première capture(et porte donc le numéro 1) ; le caractère correspondant à ". est capturé avec le numéro 2, et la partie correspondant à "%s* porte le numéro 3.

Dans un cas particulier, la capture vide " () capture la position actuelle de la chaîne de caractères (un nombre). Par exemple, si nous appliquons le motif " "()aa()" à la chaîne " "flaaap", il y aura deux captures : 3 et 5.

Un motif ne peut pas contenir de zéros intégrés. Utilisez plutôt '%z