Qu'est-ce que Expression régulière (regex) ?

Notation qui exprime un motif de chaînes en combinant des symboles. . désigne un caractère quelconque, * zéro répétition ou plus de l'élément précédent, ^ et $ le début et la fin de la ligne, et [abc] l'un des caractères entre crochets ; les expressions régulières servent à rechercher et à remplacer dans des commandes comme grep, sed et awk et dans de nombreux langages de programmation. Les expressions régulières de base de grep (BRE) et les expressions régulières étendues (grep -E, ERE), où +, ? et | s'utilisent directement, traitent certains symboles différemment. Elles sont différentes des caractères génériques du shell (comme *.txt), où * n'a pas le même sens.

Nom japonais: 正規表現

« Expression régulière (regex) » apparaît dans 4 questions d'entraînement réparties sur 2 thèmes, dont Compilateurs, Bases de Linux et de la ligne de commande.

Domaine: Bases de Linux et de la ligne de commande

S'entraîner : questions sur Expression régulière (regex)

Quel est le rôle de l'analyse lexicale d'un compilateur ?

  1. AVérifier, sous forme d'arbre, que les instructions du programme respectent la grammaire du langage
  2. BDécouper la suite de caractères du code source en lexèmes (tokens) comme les identificateurs et les opérateurs
  3. CVérifier la cohérence des types des variables et l'absence de noms non définis
Afficher la réponse et l'explication

Réponse : B. Découper la suite de caractères du code source en lexèmes (tokens) comme les identificateurs et les opérateurs

L'analyse lexicale est la première phase du compilateur ; elle découpe par exemple « count = count + 1; » en lexèmes : identificateur count, symbole =, identificateur count, symbole +, nombre 1, symbole ;. Les espaces et les commentaires sont aussi éliminés à ce stade. Les règles des lexèmes s'exprimant par des expressions régulières, elles se traitent rapidement par automate fini. Vérifier sous forme d'arbre la conformité à la grammaire relève de l'analyse syntaxique suivante, et l'examen des types et des noms de l'analyse sémantique.

Qu'utilise-t-on souvent pour exprimer les règles de reconnaissance des lexèmes dans l'analyse lexicale ?

  1. ALes règles d'arrondi en virgule flottante
  2. BLes expressions régulières et les automates finis qui les traitent
  3. CLes règles de remplacement du cache
Afficher la réponse et l'explication

Réponse : B. Les expressions régulières et les automates finis qui les traitent

Les types de lexèmes s'écrivent de façon concise par des expressions régulières, par exemple « commence par une lettre suivie de lettres ou chiffres » pour un identificateur ou « un ou plusieurs chiffres » pour un nombre. Une expression régulière se convertit en automate fini (machine à nombre fini d'états), qui découpe les lexèmes en un temps proportionnel à la longueur de l'entrée, en changeant simplement d'état à chaque caractère lu. Les analyseurs lexicaux sont donc souvent produits par des outils qui les génèrent automatiquement à partir d'expressions régulières. Les règles d'arrondi ou de cache n'ont rien à voir.

« Expression régulière (regex) » dans les explications

Questions mentionnant « Expression régulière (regex) » (4)

  1. Quel est le rôle de l'analyse lexicale d'un compilateur ?
  2. Qu'utilise-t-on souvent pour exprimer les règles de reconnaissance des lexèmes dans l'analyse lexicale ?
  3. Quel type de grammaire, utilisé pour décrire la grammaire de nombreux langages de programmation, sert de base à l'analyse syntaxique ?
  4. Dans la session ci-dessus, quelles lignes affiche le dernier grep ?

Termes associés

Analyse lexicale Analyse syntaxique grep cron Git inode Lien physique (hard link) Lien symbolique (symlink) Permissions (droits d'accès) Pipe (|)

Retour au glossaire