Passer au contenu principal
eLearner.app
Module 1 · Leçon 1 sur 41/32 dans le cours~8 min
Leçons du module (1/4)

Motifs littéraux

Dans una regex, les caractères alphanumériques "normaux" correspondent simplement à eux-mêmes : écrivez ciao comme motif et le moteur recherchera la sous-chaîne ciao dans le texte. Rien de plus magique : un balayage de gauche à droite position par position.

Code
Pattern: ciao
Sample:  Buongiorno, ciao mondo! Ti dico anche ciao.
                     ^^^^                        ^^^^

Une correspondance (match) apporte toujours deux informations fondamentales :

  • le texte correspondant (ici ciao) ;
  • l'indice (offset basé sur 0) où il commence dans l'échantillon (ici 12 et 38).

Les regex sont par défaut sensibles à la casse : ciao ne correspond ni à Ciao ni à CIAO. Pour ignorer la casse, ajoutez le drapeau i (case-insensitive).

Comment raisonne le moteur

Le moteur de regex analyse le texte un caractère à la fois. Lorsqu'il cherche le motif littéral ciao, il cherche d'abord la lettre c. S'il la trouve, il vérifie si le caractère suivant est i, puis a, et enfin o. Si l'une de ces étapes échoue (mismatch), le moteur revient en arrière (backtrack) à la position initiale suivante et recommence à chercher le c.

Motifs littéraux et drapeau g

Sans le drapeau g (global), le moteur s'arrête à la première correspondance trouvée et arrête la recherche. Avec g actif, il continue jusqu'à la fin de la chaîne et collecte toutes les correspondances suivantes. Dans les leçons de ce cours, nous activerons presque toujours g : nous voulons voir toutes les correspondances présentes dans le texte.

À vous de jouer

Exercice#regex.m1.l1.e1
Tentatives : 0Chargement…

Trouvez toutes les occurrences exactes (sensibles à la casse) du mot `ciao` dans l'échantillon. Indice : n'oubliez pas le drapeau `g`.

Chargement de l'éditeur…
Afficher l'indice

Le motif est le mot lui-même. Les majuscules ne doivent pas correspondre : pas de drapeau i.

Solution disponible après 3 tentatives

Exercice de révision

Exercice#regex.m1.l1.e2
Tentatives : 0Chargement…

Trouvez toutes les occurrences du mot `errore` dans le texte, en ignorant la casse.

Chargement de l'éditeur…
Afficher l'indice

Même mot comme motif, mas ajoutez le drapeau i (insensible à la casse) en plus de g.

Solution disponible après 3 tentatives

Défi supplémentaire

Exercice#regex.m1.l1.e3
Tentatives : 0Chargement…

Identifiez et collectez toutes les occurrences exactes du mot `WARNING` (majuscules, sensible à la casse) dans le texte de journal d'exemple.

Chargement de l'éditeur…
Afficher l'indice

Recherchez directement la chaîne littérale WARNING, en veillant à ne pas activer le drapeau i.

Solution disponible après 3 tentatives