Différences entre les versions de « Regexp »
Ligne 49 : | Ligne 49 : | ||
==== Exemples ==== | ==== Exemples ==== | ||
− | * | + | * abc: chaîne contenant la chaîne abc |
− | * | + | * abc?: chaîne qui contient ab suivie de zero ou un c (ab ou abc) |
− | * | + | * abc*: chaîne qui contient ab suivie de zero ou plusieurs c (ab, abc ...) |
− | * | + | * abc+: chaîne qui contient ab suivie de un ou plusieurs c (abc, abcc ...) |
− | * | + | * abc{2}: chaîne qui contient ab suivie de deux c (abcc) |
− | * | + | * abc{2,}: chaîne qui contient ab suivie de deux c ou plus (abcc etc..) |
− | * | + | * abc{2,4}: chaîne qui contient ab suivie 2, 3 ou 4 c (abcc .. abcccc) |
− | * | + | * ^debut: chaîne qui commence par debut |
− | * | + | * fin$: chaîne qui se termine par fin |
− | * | + | * [abc]: chaîne qui contient un a, un b, ou un c. |
− | * | + | * a(bc)*: chaîne qui contient a suivie de zero bc ou plus |
− | * | + | * un|le: chaîne qui contient un ou le |
− | * | + | * (un|le) chien: chaîne qui contient un chien ou le chien |
− | * | + | * ^abc+: chaîne commençant par ab suivie de un ou plusieurs c (abc, abcc ...) |
− | * | + | * ^chaîne$: chaîne qui commence et se termine par chaîne |
− | * | + | * (a|b)*: chaîne qui contient une suite de a ou de b |
− | * | + | * ^.{3}$: chaîne qui contient 3 caractères exactement. |
=== Classes de caractères === | === Classes de caractères === | ||
Ligne 90 : | Ligne 90 : | ||
==== Exemples ==== | ==== Exemples ==== | ||
− | * | + | * [abc]: chaîne qui contient un a, un b, ou un c. |
− | * | + | * [a-z]: chaîne qui contient un caractère compris entre a et z. |
− | * | + | * ^[a-zA-Z]: chaîne qui commence par une lettre minuscule ou majuscule. |
− | * | + | * ^[^a-zA-Z]: chaîne qui ne commence pas par une lettre. |
− | * | + | * [\+?{}.]: chaîne qui contient un de ces six caractères : \+?{}. |
=== Combinaison avec <tt>grep</tt> === | === Combinaison avec <tt>grep</tt> === | ||
− | <pre>grep '^smu' file</pre>cherche 'smu' au début de chaque ligne dans file. | + | <pre> |
− | <pre>grep 'smu$' file</pre>cherche 'smu' à la fin de chaque ligne dans file. | + | grep '^smu' file |
− | <pre>grep '^smu$' file</pre>retourne les lignes contenant seulement et exactement 'smu'. | + | </pre> |
− | <pre>grep '\^s' file</pre>retourne les lignes commençant par '^s',car "\" permet de considérer ^ comme un caractère normal et non plus un méta-caractère. | + | cherche 'smu' au début de chaque ligne dans file. |
− | <pre>grep '[Ss]mu' file</pre> affiche les lignes contenant 'Smu' ou 'smu'. | + | <pre> |
− | <pre>grep 'B[oO][bB]' file</pre> affiche les lignes contenant BOB, Bob, BOb or BoB. | + | grep 'smu$' file</pre> |
− | <pre>grep '^$' file</pre> recherche les lignes vides dans file. | + | cherche 'smu' à la fin de chaque ligne dans file. |
− | <pre>grep '[0-9][0-9]' file</pre> recherche les lignes contenant 2 chiffres côte à côte. | + | <pre> |
+ | grep '^smu$' file | ||
+ | </pre>retourne les lignes contenant seulement et exactement 'smu'. | ||
+ | <pre> | ||
+ | grep '\^s' file | ||
+ | </pre> | ||
+ | retourne les lignes commençant par '^s',car "\" permet de considérer ^ comme un caractère normal et non plus un méta-caractère. | ||
+ | <pre> | ||
+ | grep '[Ss]mu' file | ||
+ | </pre> | ||
+ | affiche les lignes contenant 'Smu' ou 'smu'. | ||
+ | <pre> | ||
+ | grep 'B[oO][bB]' file | ||
+ | </pre> affiche les lignes contenant BOB, Bob, BOb or BoB. | ||
+ | <pre> | ||
+ | grep '^$' file | ||
+ | </pre> | ||
+ | recherche les lignes vides dans file. | ||
+ | <pre> | ||
+ | grep '[0-9][0-9]' file | ||
+ | </pre> | ||
+ | recherche les lignes contenant 2 chiffres côte à côte. | ||
== Voir aussi == | == Voir aussi == |
Version du 8 mai 2013 à 09:24
Dans le jargon informatique, une expression régulière, ou Regexp, est une chaîne de caractères désignant un ensemble de chaînes de caractères respectant une syntaxe particulière. Elle est très utile dans la manipulation de texte, pour rechercher, remplacer ou supprimer des expressions rencontrées fréquemment.
Métacaractères
Un métacaractère est un symbole d'une expression régulière qui remplit une fonction précise. Quelques exemples d'application suivent ce tableau.
Métacaractères | Fonction |
---|---|
? | Opérateur portant sur l'expression précédente : 0 ou une fois l'expression précédente. |
* | Opérateur portant sur l'expression précédente : 0, 1 ou plusieurs fois l'expression précédente. |
+ | Opérateur portant sur l'expression précédente : 1 ou plusieurs fois l'expression précédente. |
{n} | Opérateur portant sur l'expression précédente : n fois exactement l’expression précédente |
{n,m} | Opérateur portant sur l'expression précédente : n fois minimum et m fois maximum l’expression précédente |
^ | Négation ou début de ligne. |
$ | Fin de ligne. |
[] | Les crochets définissent une classe (voir section suivante). |
() | Les parenthèses définissent un élément composé de l'expression régulière qu'elle contient |
| | Opérateur ou. |
N.B. : Pour que « * » ne soit pas interprété comme un métacaractère, il faut plutôt utiliser « \* » ou « [*] ».
Exemples
- abc: chaîne contenant la chaîne abc
- abc?: chaîne qui contient ab suivie de zero ou un c (ab ou abc)
- abc*: chaîne qui contient ab suivie de zero ou plusieurs c (ab, abc ...)
- abc+: chaîne qui contient ab suivie de un ou plusieurs c (abc, abcc ...)
- abc{2}: chaîne qui contient ab suivie de deux c (abcc)
- abc{2,}: chaîne qui contient ab suivie de deux c ou plus (abcc etc..)
- abc{2,4}: chaîne qui contient ab suivie 2, 3 ou 4 c (abcc .. abcccc)
- ^debut: chaîne qui commence par debut
- fin$: chaîne qui se termine par fin
- [abc]: chaîne qui contient un a, un b, ou un c.
- a(bc)*: chaîne qui contient a suivie de zero bc ou plus
- un|le: chaîne qui contient un ou le
- (un|le) chien: chaîne qui contient un chien ou le chien
- ^abc+: chaîne commençant par ab suivie de un ou plusieurs c (abc, abcc ...)
- ^chaîne$: chaîne qui commence et se termine par chaîne
- (a|b)*: chaîne qui contient une suite de a ou de b
- ^.{3}$: chaîne qui contient 3 caractères exactement.
Classes de caractères
Une classe est définie en spécifiant, entre crochets « [ ] », les caractères en faisant partie. L'utilisation de métacaractères est autorisée.
Classe | Signification |
---|---|
[abc] | Les caractères a, b et c. |
[a-z] | Toutes les lettres de l'alphabet. |
[^abc] | Toutes les lettres de l'alphabet, sauf a, b et c. |
[a-zA-Z] | L'union des classes [a-z] et [A-Z]. |
Exemples
- [abc]: chaîne qui contient un a, un b, ou un c.
- [a-z]: chaîne qui contient un caractère compris entre a et z.
- ^[a-zA-Z]: chaîne qui commence par une lettre minuscule ou majuscule.
- ^[^a-zA-Z]: chaîne qui ne commence pas par une lettre.
- [\+?{}.]: chaîne qui contient un de ces six caractères : \+?{}.
Combinaison avec grep
grep '^smu' file
cherche 'smu' au début de chaque ligne dans file.
grep 'smu$' file
cherche 'smu' à la fin de chaque ligne dans file.
grep '^smu$' file
retourne les lignes contenant seulement et exactement 'smu'.
grep '\^s' file
retourne les lignes commençant par '^s',car "\" permet de considérer ^ comme un caractère normal et non plus un méta-caractère.
grep '[Ss]mu' file
affiche les lignes contenant 'Smu' ou 'smu'.
grep 'B[oO][bB]' file
affiche les lignes contenant BOB, Bob, BOb or BoB.
grep '^$' file
recherche les lignes vides dans file.
grep '[0-9][0-9]' file
recherche les lignes contenant 2 chiffres côte à côte.