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 [10/07/2014 08:08] Hypathie [Rappel et contexte] |
doc:programmation:shells:bash-vii-globs-etendus-regex [10/07/2014 08:20] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
||
---|---|---|---|
Ligne 29: | Ligne 29: | ||
===Rappel : === | ===Rappel : === | ||
- | __Le premier type de représentation symbolique__ se fait avec [[doc:programmation:shell:les-metacaracteres|les globs ou patterns simples]] ; ils servent aux recherches sur les chaînes de caractères et se font généralement en ligne de commandes.\\ Il a été donné un simple récapitulatif des caractères utilisés ici : [[atelier:chantier:bash-les-differents-caracteres-speciaux#metacaracteres-et-meta-caracteres|méta-caractères et métacaractères]].\\ | + | __Le premier type de représentation symbolique__ se fait avec [[doc:programmation:shell:les-metacaracteres|les globs ou patterns simples]] ; ils servent aux recherches sur les chaînes de caractères et se font généralement en ligne de commandes.\\ Il a été donné un simple récapitulatif des caractères utilisés ici : [[atelier:chantier:bash-les-differents-caracteres-speciaux#definition-usuelle-de-metacaractere-et-detail|définition usuelle de métacaractère"]].\\ |
===Distinguer le "globbing" étendu des expressions régulières === | ===Distinguer le "globbing" étendu des expressions régulières === | ||
Ligne 143: | Ligne 143: | ||
- Contrairement à la correspondance simple rappelée au-dessus les doubles crochets sont obligatoires. C'est eux qui enclenchent le mécanisme de comparaison. On peut mettre un double égal, pour plus de clarté.\\ | - Contrairement à la correspondance simple rappelée au-dessus les doubles crochets sont obligatoires. C'est eux qui enclenchent le mécanisme de comparaison. On peut mettre un double égal, pour plus de clarté.\\ | ||
- | - Le "méta-caractère" ou glob simple * signifie "un nombre quelconque de caractères" et le ? signifie "un seul caractère", comme pour les globs simples.\\ | + | - Le "métacaractère" ou glob simple ''*'' signifie "un nombre quelconque de caractères" et le ''?'' signifie "un seul caractère", comme pour les globs simples.\\ |
- CES SIGNIFICATIONS SONT CONSERVÉES lors de l'emploi des globs étendus, et leurs significations et conservée mais s'applique à une syntaxe différentes dans les expressions régulières.\\ | - CES SIGNIFICATIONS SONT CONSERVÉES lors de l'emploi des globs étendus, et leurs significations et conservée mais s'applique à une syntaxe différentes dans les expressions régulières.\\ | ||
- | - Ne surtout pas mettre de " " autour de * : le shell chercherait alors les chaînes dont le premier caractère est une *, ni dans les cas simples, ni lorsqu'on utilise les motifs étendus. | + | - Ne surtout pas mettre de ''" "'' autour de ''*'' : le shell chercherait alors les chaînes dont le premier caractère est une ''*'', ni dans les cas simples, ni lorsqu'on utilise les motifs étendus. |
</note> | </note> | ||
Ligne 269: | Ligne 269: | ||
>puis ''$'' qui signifie fin de l'expression. | >puis ''$'' qui signifie fin de l'expression. | ||
- | >Le tout entre '' " " '' et sans espace autour du égal qui affecte la variable "regex" par la RE. | + | >Le tout entre '' " " '' et sans espace autour du égal qui affecte la variable "regex" par la //ERE//((expression rationnelle étendue)). |
- | Et voilà comment avec le shell bash, on peut dresser une expression rationnelle fonctionnant dans les tests ! :-P | + | Et voilà comment avec le shell bash, on peut dresser une expression rationnelle étendue fonctionnant dans les tests ! :-P |
<note> | <note> | ||
Pour résumer :\\ | Pour résumer :\\ | ||
- | * Les expressions régulières utilisées avec le shell Bash nécessitent l'opérateur ''=~'' | + | * Les //expressions régulières// utilisées avec le shell Bash nécessitent l'opérateur ''=~'' |
* On y retrouve ceux des caractères génériques (globs) basiques ''*'', ''[ ]'', ''?''.\\ (avec sens voisin mais étendus par une syntaxe particulière). | * On y retrouve ceux des caractères génériques (globs) basiques ''*'', ''[ ]'', ''?''.\\ (avec sens voisin mais étendus par une syntaxe particulière). | ||
* On y retrouve ceux des caractères génériques étendus ''|'', ''@'', ''!'', ''+'', ''^''\\ (là aussi avec une nouvelle syntaxe). | * On y retrouve ceux des caractères génériques étendus ''|'', ''@'', ''!'', ''+'', ''^''\\ (là aussi avec une nouvelle syntaxe). | ||
Ligne 283: | Ligne 283: | ||
* Elles ne s'utilisent pas avec la syntaxe de correspondance ou de substitution de type : ''<nowiki>$var/.../...</nowiki>'' ou ''<nowiki>$var//.../...</nowiki>'' | * Elles ne s'utilisent pas avec la syntaxe de correspondance ou de substitution de type : ''<nowiki>$var/.../...</nowiki>'' ou ''<nowiki>$var//.../...</nowiki>'' | ||
* Ce sont les ER d'autres programmes qui recourent à une syntaxe ressemblante\\ (voir index correspondance et substitution). | * Ce sont les ER d'autres programmes qui recourent à une syntaxe ressemblante\\ (voir index correspondance et substitution). | ||
- | * Beaucoup de ces métacaractères sont identiques à ceux des ER d'autres programmes\\ (comparez avec l'index). | + | * Beaucoup de ces métacaractères sont identiques à ceux des expressions régulières d'autres programmes\\ (comparez avec l'index). |
</note> | </note> | ||
- | ====Un script pour s'exercer au ER==== | + | ====Un script pour s'exercer au "ER"==== |
* Voici un script "exp.reg1" | * Voici un script "exp.reg1" | ||