suivant: Multi-niveau (Job control)
monter: Expressions régulières
précédent: Introduction
  Table des matières
Les caractères représentés dans un motif d'expression remplaçante
devront être existants et identiquement placés par rapport aux
autres caractères présents dans le motif pour que la partie de phrase
soit considérée comme adéquate. Par exemple, en supposant que la
phrase est Le lièvre saute par-dessus la tortue25, les motifs
suivants provoqueront un succès:
Au contraire, les motifs suivants ne donneront pas de succès:
Certains caractères spéciaux permettent d'exprimer des requêtes plus
complexes, comme par exemple: donnez-moi toutes les phrases contenant
abc puis n'importe quel caractère, puis def. Pour ce
faire, le joker ? est à employer. Notez que cela
n'est valable que pour le shell. En général, pour une
expression régulière, le caractère . joue ce rôle.
Des requêtes telles que donnez-moi toutes les
phrases contenant abcd, puis une suite de caractères qui me
sont indifférents et dont le nombre m'est égal, puis def
sont exprimables à l'aide du caractère *. De
nouveau, lors d'expressions régulières générales (non pas au
niveau du shell), il faut faire précéder l'étoile du caractère que
l'on désire voir multiplié un nombre quelconque de fois. Par exemple
.* remplace n'importe quelle suite de caractères.
Ces deux caractères spéciaux sont nommés des jokers et sont
connus dans beaucoup de systèmes d'exploitation. Il est intéressant
d'en connaître quelques autres:
- Permet d'annuler l'effet spécial du
caractère qui le suit. Cela peut être utilisé, par exemple, pour
demander un point (alors qu'un point en général peut remplacer
n'importe quel caractère.)
- Permet de demander une comparaison forcée au début de
la ligne. Notez que pour que ce caractère ait cette signification spéciale
il doit débuter la ligne. Notez également qu'au début d'un ensemble,
il inverse logiquement celui-ci (le ``non'' logique).
- []
- Permet de donner un ensemble de valeurs possibles. Par
exemple, pour la requête donnez-moi une phrase commençant par
abc, puis un seul chiffre (obligatoire), puis def et
n'importe quoi, on dirait abc[0-9]def.
- ()
- Les parenthèses permettent de grouper logiquement une
expression.
Les commandes grep et egrep permettent de rechercher
des motifs dans un ou plusieurs fichiers. Voici un exemple (relativement
complexe) d'utilisation des expressions régulières. Le but est d'afficher
toutes les lignes d'un fichier indiqué en paramètre, sauf celles qui
commencent par d2/local, d3/divers ou var/adm/tmp.
egrep -v "d2/local|d3/divers|var/adm/tmp" fichier
Le symbole barre verticale, ou encore | permet dans ce cas
de spécifier l'alternative, et l'argument -v de la commande
egrep permet d'inverser la proposition.
Tableau:
Résumé des caractères spéciaux pour les regexp
Caractère(s) |
Signification |
. |
caractère quelconque (sauf fin de ligne \n ) |
$ |
fin de ligne (\n ) |
^ |
début de ligne sauf dans [] où il signifie ``complément'' (négation logique) |
[] |
un des caractères contenus dans les crochets |
- |
dans [] signifie de ... à ... |
? |
l'expression régulière précédente est optionnelle |
* |
répétition du caractère précédent (éventuellement vide). |
+ |
répétition (non vide) |
| |
alternative entre deux expressions |
\c |
supprime la signification spéciale du caractère `c' |
() |
groupe des expressions |
|
Tableau:
Résumé des caractères spéciaux pour le shell
Caractère(s) |
Signification |
[] |
un des caractères contenus dans les crochets |
- |
dans [] signifie de ... à ... |
^ |
dans [] signifie ``complément'' (NON) |
? |
remplace n'importe quel caractère |
* |
remplace n'importe quelle suite (éventuellement vide) |
\c |
supprime la signification spéciale du caractère `c' |
|
suivant: Multi-niveau (Job control)
monter: Expressions régulières
précédent: Introduction
  Table des matières
Marc SCHAEFER
2003-03-01