expressions régulières
Les expresions régulières caractérisent uniquement des chaines de caractères et pas des noms de fichiers. Elles sont utilisées avec les commandes ed, vi,ex,sed,awk.
Pour les exemples, j'utiliserai la commande de substitution de vi ou sed :
s/RE/chaine de remplacement/ (ou RE caracterise une expression régulière)
Lorsqu'on recherche une chaine de caractères à l'aide d'une expression régulière, la chaine renvoyée est la chaine la plus grande correspondant avec l'expression.
Pour banaliser un caractère, il faut utiliser
Rappel : pour pouvoir caractériser le ., il faut le banaliser : .
Si le premier carcatère entre crochet est ^, alors cela caractérise un caractère qui ne correspond pas avec les caractères entre crochets.
$ : caractérise la fin de ligne.
Elle signifie de 0 à n fois le caractère la précédant
/^[0-9][0-9]*$/ ligne qui ne contient que des chiffres et non vide
Pour les exemples, j'utiliserai la commande de substitution de vi ou sed :
s/RE/chaine de remplacement/ (ou RE caracterise une expression régulière)
Lorsqu'on recherche une chaine de caractères à l'aide d'une expression régulière, la chaine renvoyée est la chaine la plus grande correspondant avec l'expression.
Pour banaliser un caractère, il faut utiliser
.
Caractérise n'importe quel caractère.Rappel : pour pouvoir caractériser le ., il faut le banaliser : .
chaine de départ | asdeuy...dur |
commande | s/.../---/ |
resultat | ---euy...dur |
[ ]
Un des caractères entre les crochets ouSi le premier carcatère entre crochet est ^, alors cela caractérise un caractère qui ne correspond pas avec les caractères entre crochets.
[abc] | a, b ou c |
[a-z] | une lettre minuscule |
[0-57] | 0, 1, 2, 3, 4, 5 ou 7 |
[a-d5-8X-Z] | a, b, c, d, 5, 6, 7, 8, X, Y ou Z |
[0-5-] | 0, 1, 2, 3, 4, 5 ou - |
[^0-9] | pas un chiffre |
[^a-zA-Z] | pas une lettre |
[012^] | 0, 1, 2 ou ^ |
^, $
^ : caractérise le début de ligne (Attention ne pas confondre ^ et [^ ]).$ : caractérise la fin de ligne.
/^abc/ | ligne commencant par abc |
/abc$/ | ligne finissant par abc |
/^$/ | ligne vide |
*
Attention, l'utilisation de * est un peu particulière dans les expressions regulières :Elle signifie de 0 à n fois le caractère la précédant
a* | 0 ou n fois a |
aa* | au moins un a |
.* | n'importe quelle chaine de caractères (y compris la chaine vide) |
chaine de départ | aabbabbaab | ||
commande | s/[ab]*/x/ | s/a.*b/y/ | s/a.*bb/z/ |
resultat | x | y | zaab |
/^[0-9][0-9]*$/ ligne qui ne contient que des chiffres et non vide
( )
Pour isoler des sous chaines. On peut reutiliser les sous chaines ainsi trouvées grace à 1, 2 ..chaine de départ | ejkf fed 158e fd |
commande | s/.*([0-9][0-9]*).*/ resultat = 1/ |
resultat | resultat = 158 |