Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Expressions régulières
  3. Synthèse des types d’expression
Extrait - Expressions régulières Syntaxe et mise en oeuvre (avec exercices et corrigés)
Extraits du livre
Expressions régulières Syntaxe et mise en oeuvre (avec exercices et corrigés)
1 avis
Revenir à la page d'achat du livre

Synthèse des types d’expression

Les expressions de sélection

1. Quels programmes les utilisent ?

Les expressions de sélection (ou de filtrage) permettent la sélection de noms de fichiers. Elles sont principalement utilisées par les shells et certaines fonctions :

  • sh

  • csh

  • ksh

  • tcsh

  • bash

  • zsh

  • find (options -name, -iname, -lname, -ilname, -path, -ipath)

  • glob()

  • fnmatch()

  • etc.

2. Les métacaractères

Les métacaractères utilisés sont les suivants :

  • ?

  • [ ]

  • *

3. Les quantificateurs

Il n’y a pas de quantificateur permettant d’indiquer la répétition d’un caractère dans les expressions de sélection.

Le caractère * désigne une chaîne quelconque de longueur éventuellement nulle.

Les expressions régulières basiques

1. Quels programmes les utilisent ?

Les expressions régulières basiques sont les expressions que l’on trouve dans les commandes et fonctions suivantes :

  • ed

  • ex

  • expr

  • grep (sans option -E)

  • find (options -regextype posix-basic -regex)

  • awk

  • vi (par défaut, ou avec option nofullre quand elle existe)

  • vim

  • regcomp() / regexec() (sans le flag REG_EXTENDED)

  • hl (sans l’option -e)

  • etc.

2. Les métacaractères

Les métacaractères utilisés sont les suivants :

  • .

  • *

  • [ ]

  • \<  \>

  • ˆ

  • $

  • \

  • ( ) (pour la sélection par ed ou ex par exemple)

3. Les quantificateurs

Seul le caractère * peut être utilisé comme caractère indiquant la répétition. Il représente un facteur multiplicateur supérieur ou égal à 0.

4. Les classes de caractères

Les classes de caractères sont désignées par la syntaxe [[:classe:]]. Les classes de caractères sont détaillées dans le chapitre intitulé Les classes de caractères POSIX. Elles ne sont pas toujours supportées.

Les expressions régulières étendues

1. Quels programmes les utilisent ?

Les expressions régulières étendues sont les expressions que l’on trouve dans les commandes et fonctions suivantes :

  • grep -E, egrep

  • sed -r

  • find (options -regextype emacs, -regextype posix-awk, -regextype posix-grep, -regextype posix-extended, avec option -regex)

  • lex

  • vi (avec option fullre quand elle existe)

  • vim

  • regcomp() / regexec() (avec le flag REG_EXTENDED)

  • le langage Python

  • le langage Perl

  • etc.

2. Les métacaractères

Les métacaractères utilisés sont les suivants :

  • .

  • [ ]

  • *

  • +

  • ?

  • { }

  • \<  \>

  • ˆ

  • $

  • \

  • ( )

  • |

3. Les quantificateurs

Les quantificateurs servent à d’indiquer le nombre d’occurrences d’une expression :

  • * : 0 à N fois (N étant strictement positif),

  • + : 1 à N fois (N étant strictement positif),

  • ? : 0 ou 1 fois,

  • {min,max} : min à max fois.

4. Les classes de caractères

Les classes de caractères sont désignées par la syntaxe [[:classe:]]. Les classes de caractères sont détaillées dans le chapitre intitulé Les classes de caractères POSIX. Elles ne sont pas toujours supportées.

Les expressions régulières de find

1. Généralités

L’option --regex de la commande find permet de comparer les noms longs des fichiers, trouvés lors du parcours des arborescences, à des expressions régulières. Le type de ces dernières peut être spécifié grâce à l’option --regextype. Les différents types implémentés présentent quelques différences qu’il est souhaitable de connaître pour éviter de commettre des erreurs.

Les différentes interprétations des métacaractères et expressions régulières sont définies dans la documentation des utilitaires de find sur le site http://www.gnu.org/.

Elles sont résumées dans les sections suivantes sous forme de tableaux pour une meilleure lisibilité.

Dans tous les cas, l’expression la plus longue est considérée.

2. les différentes interprétations des expressions régulières

a. emacs

.

tout sauf un saut de ligne (\n).

*

zéro, une ou plusieurs fois ce qui précède, sauf en début d’expression ou après \( ou \|.

+

une ou plusieurs fois ce qui précède, sauf en début d’expression ou après \( ou \|.

?

zéro ou une fois ce qui précède, sauf en début d’expression ou après \( ou \|.

\+

+

\?

?

[ ... ]

définition de plages de caractères ; les plages inversées sont ignorées ; \ sans signification ; classes POSIX non reconnues.

\w

caractère dans un mot.

\W

caractère qui n’est pas dans un mot.

\<

début de mot.

\>

fin de mot.

\b

délimiteur de mot.

\B

tout sauf un délimiteur de mot.

\`

début des données.

\’

fin des données.

\( ... \)

groupement d’expressions ; gestion des références arrières avec \ii est entier.

\|

OU logique.

ˆ

début de chaîne en début d’expression, ou après \(, ou après \|.

$

fin de chaîne en fin d’expression.

b. posix-awk

.

tout sauf un caractère nul.

*

zéro, une ou plusieurs fois ce qui précède ; interdit en début d’expression, après ( et après |.

+

une ou plusieurs...