Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
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 Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:bash-vii-globs-etendus-regex [09/07/2014 11:45] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
doc:programmation:shells:bash-vii-globs-etendus-regex [09/07/2014 12:02] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
||
---|---|---|---|
Ligne 156: | Ligne 156: | ||
* de vérifier la correspondre entre une chaîne (valeur d'une variable à gauche) et le modèle regex à droite ; | * de vérifier la correspondre entre une chaîne (valeur d'une variable à gauche) et le modèle regex à droite ; | ||
* ou encore de vérifier la correspondance entre une variable (constituée d'une chaîne de caractères littérales), et une variable constituée d'une regex. | * ou encore de vérifier la correspondance entre une variable (constituée d'une chaîne de caractères littérales), et une variable constituée d'une regex. | ||
- | |||
- | Voici quelques liens qui présentent la syntaxe et les caractères utilisables avec Bash (sans les commandes ''grep'', ''sed'', ''awk'').\\ | ||
- | * [[http://mywiki.wooledge.org/RegularExpression]]\\ | ||
- | |||
<note> | <note> | ||
Ligne 179: | Ligne 175: | ||
| ''( )'' | Définit une sous-expression marquée. La chaîne correspondante entre parenthèses peut être rappelé plus tard (voir l'entrée suivante, ''\ n''). Une sous-expression marquée est aussi appelé un groupe de blocs ou de capturer. Mode BRE nécessite \ (\). | | | ''( )'' | Définit une sous-expression marquée. La chaîne correspondante entre parenthèses peut être rappelé plus tard (voir l'entrée suivante, ''\ n''). Une sous-expression marquée est aussi appelé un groupe de blocs ou de capturer. Mode BRE nécessite \ (\). | | ||
| ''\n'' | Correspond au nombre ''n'' de sous-chaîne, où ''n'' est un chiffre de 1 à 9.\\ Écriture équivalente à ''{n}'' | | | ''\n'' | Correspond au nombre ''n'' de sous-chaîne, où ''n'' est un chiffre de 1 à 9.\\ Écriture équivalente à ''{n}'' | | ||
- | | ''*'' | Correspond à zéro ou plusieurs fois l'élément précédent.\\ Par exemple, ''ab * c'' correspond à "ac", "abc", "abbbc», etc. Ou encore, ''[xyz] *'' correspond à " ", "x", "y", "z", "zx", "zyx", "xyzzy ", et ainsi de suite. ''(ab) *'' correspond à "", "b", "abab", "ababab", et ainsi de suite. | | + | | ''*'' | Correspond à zéro ou plusieurs fois l'élément précédent.\\ Par exemple, ''ab* c'' correspond à "ac", "abc", "abbbc», etc. Ou encore, ''[xyz]*'' correspond à ''x'', ''y'', ''z'', ''zx'', ''zyx'', ''xyzzy'', et ainsi de suite. ''(ab)*'' correspond à ''a'', ''b'', ''abab'', ''ababab'', et ainsi de suite. | |
- | | ''{m,n}'' | Correspond au moins à m fois mais pas plus de n fois l'élément précédent.\\ Par exemple, ''a{3,5}'' correspond uniquement ''aaa'', ou ''aaaa'', ou ''aaaaa''. | | + | | ''{m,n}'' | l'élément précédent correspond au moins à ''m'' fois, mais pas plus de ''n'' fois .\\ Par exemple, ''a{3,5}'' correspond uniquement ''aaa'', ou ''aaaa'', ou ''aaaaa''. | |
| ''{ }'' | "exactement trois fois" par exemple ''a{3}'' correspond strictement à ''aaa'' . | | | ''{ }'' | "exactement trois fois" par exemple ''a{3}'' correspond strictement à ''aaa'' . | | ||
| ''{n,}'' | "jusqu'à trois fois". «trois fois ou plus». Par exemple, ''{3,}'' correspond aaa ou aaaa, etc. (équivalent de ''a*'') | | | ''{n,}'' | "jusqu'à trois fois". «trois fois ou plus». Par exemple, ''{3,}'' correspond aaa ou aaaa, etc. (équivalent de ''a*'') | | ||
- | | ''{,n}'' | ''a{,3}'' "jusqu'à trois fois". Correspond à la chaîne vide ou a ou aa ou aaa (équivalent de ''| a | aa | aaa''.| | + | | ''{,n}'' | ''a{,3}'' "jusqu'à trois fois". Correspond à la ''chaîne vide'' ou ''a'' ou ''aa'' ou ''aaa'' (équivalent de ''a|aa|aaa''.| |
|POSIX extended | Bash avec correctif, sinon il faut \ devant parenthèse et crochet. ''\( \)'' et ''\{ \}'' | | |POSIX extended | Bash avec correctif, sinon il faut \ devant parenthèse et crochet. ''\( \)'' et ''\{ \}'' | | ||
|autres caractères | signification | | |autres caractères | signification | | ||
- | | ''?'' | Correspond zéro ou une fois à l'élément précédent. Par exemple, ''ab? c'' correspond seulement ''ac'' ou ''abc''. | | + | | ''?'' | Correspond zéro ou une fois à l'élément précédent. Par exemple, ''ab?c'' correspond seulement ''ac'' ou ''abc''. | |
- | | ''+'' | Correspond une ou plusieurs fois à l'élément précédent. Par exemple, ''ab + c'' correspond à ''abc'', ''abbc'', ''abbbc'', et ainsi de suite, mais pas "ac". | | + | | ''+'' | Correspond une ou plusieurs fois à l'élément précédent. Par exemple, ''ab+c'' correspond à ''abc'', ''abbc'', ''abbbc'', et ainsi de suite, mais pas "ac". | |
- | | ''|'' | Correspond à l'expression d'avant OU l'expression d'après l'opérateur. Par exemple, ''abc|def'' correspond à ''abc'' ou ''def''. | | + | | ''|'' | Correspond à l'expression d'avant ''ou'' l'expression d'après l'opérateur. Par exemple, ''abc|def'' correspond à ''abc'' ou ''def''. | |
| Et toutes [[doc:programmation:shell:regexp#les-ensembles-de-caracteres-possibles|les classes prédéfinies]]. |''[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:]'' | | | Et toutes [[doc:programmation:shell:regexp#les-ensembles-de-caracteres-possibles|les classes prédéfinies]]. |''[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:]'' | | ||
- | * Référence : [[https://en.wikipedia.org/wiki/Regular_expression#Standards]] | + | * Référence (ce tableau résume le contenu de ces trois liens) : |
+ | * [[https://en.wikipedia.org/wiki/Regular_expression#Standards]] | ||
+ | * [[https://en.wikipedia.org/wiki/Regular_expression#Standards#Uses]] | ||
+ | * [[https://en.wikipedia.org/wiki/Regular_expression#Standards#Character%20classes]] | ||
+ | * Autre référence : [[http://mywiki.wooledge.org/RegularExpression]] | ||
==== Apprenons à construire une expression régulière==== | ==== Apprenons à construire une expression régulière==== |