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 [08/07/2014 19:21] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
doc:programmation:shells:bash-vii-globs-etendus-regex [08/07/2014 19:52] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
||
---|---|---|---|
Ligne 169: | Ligne 169: | ||
| ''+'' | 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 tous les caractères de class posix | voir leur signification ici [[http://wiki.debian-facile.org/doc:programmation:shell:regexp#les-ensembles-de-caracteres-possibles]] | | + | | Et tous les caractères de class posix(([[doc:programmation:shell:regexp#les-ensembles-de-caracteres-possibles]])) |''[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:]'' | |
- | | ''[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:]'' || | + | |
Ligne 234: | Ligne 233: | ||
===explication=== | ===explication=== | ||
- | * début de l'expression | + | > '' ^ '' : début de l'expression |
- | <code>^</code> | + | |
- | * entre parenthèses, première sous-expression, avec une paire de crochets contenant deux autres paires de crochets apha et blank, avec * pour signifier que le groupe (alpha, blank) doivent apparaître 0 ou plusieurs fois ; suivi d'un espace. | + | > ''<nowiki>([[:alpha:][:blank:]]*)</nowiki>'' : |
- | <code>([[:alpha:][:blank:]]*)</code> | + | >entre parenthèses: première sous-expression, |
+ | >avec une paire de crochets contenant deux autres paires de crochets ''[:apha:]'' et ''[:blank:]'', | ||
+ | >avec ''*'' pour signifier que le groupe [alpha et blank] doivent apparaître 0 ou plusieurs fois ; suivi d'un espace. | ||
- | * un tiret avec un espace après comme dans l'expression littérale. | + | > '' - '' : un tiret avec un espace après comme dans l'expression littérale. |
- | <code>- </code> | + | |
- | * une sous expression faite d'un groupe composé d'un nombre quelconque d'alphanumérique, un espace, un tiret, une autre sous-expression qui apparaît 0 ou 1 fois (?). | + | > ''([[:digit:]]*) - ([[:alpha:]]?)'' : une sous expression faite d'un groupe composé d'un nombre quelconque d'alphanumérique, un espace, un tiret, une autre sous-expression qui apparaît 0 ou 1 fois (''?''). |
- | <code>([[:digit:]]*) - ([[:alpha:]]?)</code> | + | |
- | * La sous-expression (.*) signifie n'importe quel nombre (*) de tout caractères (.), puis littéralement jpg, puis $ qui signifie fin de l'expression ($). | + | > La sous-expression ''(.*)'' signifie n'importe quel nombre ( ''*'' ) de tout caractères (''.''), |
+ | >puis littéralement ''jpg'', | ||
+ | >puis ''$'' qui signifie fin de l'expression. | ||
+ | |||
+ | >Le tout entre '' " " '' et sans espace autour du égal qui affecte la variable "regex" par la RE. | ||
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 fonctionnant dans les tests ! :-P | ||
<note> | <note> | ||
- | DONC\\ | + | 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ÉNERIQUES (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 RETROUVENT CEUX DES CARACTÈTRES 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). |
- | * LES NOUVEAUX CARACTÈRES SONT [ **,** dans { } **( )** **\n** ainsi que l'enchâssement de crochets simples. | + | |
- | * ELLES NE S'UTILISENT PAS AVEC LA SYNTAXE DE CORRESPONDANCE OU DE SUBSTITUTION DE TYPE : | + | * Les nouveaux caractères sont ''{ , }'' , ''( )'' , ''\n'', ainsi que l'enchâssement de crochets simples ''[ ]''. |
- | <code> | + | * Elles ne s'utilisent pas avec la syntaxe de correspondance ou de substitution de type : ''<nowiki>$var/.../...</nowiki>'' ou ''<nowiki>$var//.../...</nowiki>'' |
- | $var/.../... | + | * Ce sont les ER d'autres programmes qui recourent à une syntaxe ressemblante\\ (voir index correspondance et substitution). |
- | ou | + | * Beaucoup de ces métacaractères sont identiques à ceux des ER d'autres programmes\\ (comparez avec l'index). |
- | $var//.../... | + | |
- | </code> | + | |
- | * CE SONT LES ER D'AUTRES PROGRAMMES QUI RECOURENT À UNE SYNTAXE RESSEMBLANTE (voir index correspondance et substitution). | + | |
- | * BEAUCOUP DE CES MÉTA-CARATÈRES SONT IDENTIQUES À CEUX DES ER D'AUTRES PROGRAMMES (comparez avec l'index). | + | |
</note> | </note> | ||
- | ====4) un script pour s'exercer au ER==== | + | ====Un script pour s'exercer au ER==== |
Voici un script "exp.reg1" ; il a pour but de s'exercer aux expressions régulières.\\ | Voici un script "exp.reg1" ; il a pour but de s'exercer aux expressions régulières.\\ | ||