Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
informatique:linux:regexp [2010/08/24 17:02] benoit |
informatique:linux:regexp [2018/09/06 19:10] (Version actuelle) |
||
|---|---|---|---|
| Ligne 28: | Ligne 28: | ||
| + | ==== Construire les expressions rationnelles ==== | ||
| + | Les expressions régulières permettent de rechercher des occurrences (c'est-à-dire une suite de caractères correspondant à ce que l'on recherche) grâce à une série de caractères spéciaux. L'expression régulière en elle-même est donc une chaîne de caractère contenant des caractères spéciaux et des caractères standards... | ||
| + | Les symboles ^ et $ indiquent le début ou la fin d'une chaîne, et permettent donc de la délimiter. | ||
| + | |||
| + | "^debut": chaîne qui commence par "debut" | ||
| + | "fin$": chaîne qui se termine par "fin" | ||
| + | "^chaîne$": chaîne qui commence et se termine par "chaîne" | ||
| + | "abc": chaîne contenant la chaîne "abc" | ||
| + | |||
| + | Les symboles *, + et ?, respectivement "zero ou plusieurs", "un ou plusieurs", "un ou aucun", permettent de donner une notions de nombre. | ||
| + | |||
| + | "abc+": chaîne qui contient "ab" suivie de un ou plusieurs "c" ("abc", "abcc" ...) | ||
| + | "abc*": chaîne qui contient "ab" suivie de zero ou plusieurs "c" ("ab", "abc" ...) | ||
| + | "abc?": chaîne qui contient "ab" suivie de zero ou un "c" ("ab" ou "abc") | ||
| + | "^abc+": chaîne commençant par "ab" suivie de un ou plusieurs "c" ("abc", "abcc" ...) | ||
| + | |||
| + | Les accolades {X,Y} permettent de donner des limites de nombre. | ||
| + | |||
| + | "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") | ||
| + | |||
| + | A noter que le premier nombre de la limite ("{0,2}", mais pas "{,2}") est obligatoire. Les symboles vu précedemment ('*', '+', and '?') sont équivalents à "{0,}", "{1,}", et "{0,1}". | ||
| + | |||
| + | Les parenthèses ( ) permettent de représenter une séquence de caractères. | ||
| + | |||
| + | "a(bc)*": chaîne qui contient "a" suivie de zero "bc" ou plus | ||
| + | |||
| + | La barre verticale | se comporte en tant qu'opérateur OU | ||
| + | |||
| + | "un|le": chaîne qui contient "un" ou "le" | ||
| + | "(un|le) chien": chaîne qui contient "un chien" ou "le chien" | ||
| + | "(a|b)*": chaîne qui contient une suite de "a" ou de "b" | ||
| + | |||
| + | Le point . indique n'importe quel caractère (une fois) | ||
| + | |||
| + | "^.{3}$": chaîne qui contient 3 caractères | ||
| + | |||
| + | Les crochets [ ] définissent une liste de caractères autorisés (ou interdits). Le signe - permet quand à lui de définir un intervalle. Le caractère ^ après le premier crochet indique quand à lui une interdiction. | ||
| + | |||
| + | "[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 | ||
| + | "^[^a-zA-Z]": chaîne qui ne commence pas par une lettre | ||