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 [19/07/2014 18:55] Hypathie [INDEX 3] |
doc:programmation:shells:bash-vii-globs-etendus-regex [07/08/2014 07:59] Hypathie [Correspondance de motifs avec les expressions rationnelles] |
||
---|---|---|---|
Ligne 156: | Ligne 156: | ||
Elles servent seulement à "matcher" des variables, et elles ne s'utilisent que dans le cadres des scripts.\\ | Elles servent seulement à "matcher" des variables, et elles ne s'utilisent que dans le cadres des scripts.\\ | ||
- | Depuis __Bash 3.0__, on peut pour se faire utiliser l'opérateur ''=~''.\\ | + | Depuis __Bash 3.0__, on peut pour se faire utiliser l'opérateur **''=~''**.\\ |
- | Cet opérateur ''=~'' permet : | + | Cet opérateur **''=~''** permet : |
* 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. | ||
Ligne 172: | Ligne 172: | ||
**Voici les caractères utilisables :** | **Voici les caractères utilisables :** | ||
- | ^ "signes" regex ERE basique ^ signification (comparez avec le tableau de l'index) ^ | + | ^ "signes" regex ERE basique ^ significations (comparez avec le tableau de l'index) ^ |
- | | ''.'' | Correspond à tout caractère unique. | | + | | **''.''** | Correspond à tout caractère unique. | |
- | | ''[ ]'' | Correspond à un seul caractère qui est contenue dans ''[ ]''. On peut mélanger [abcx-z] correspond à ''a'', ''b'', ''c'', ''x'', ''y'' ou ''z'', de même que ''[a-cx-z]''. Le caractère ''-'' est traité comme un caractère littéral si c'est le dernier ou le premier. | | + | | **''*''** | 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.| |
- | | ''[^ ]'' | Correspond à un caractère qui n'est pas contenu dans les parenthèses. Par exemple, ''[^abc]'' correspond à tout caractère autre que a, b ou c. | | + | | **''\''** | Échappement du caractère spécial.\\ Par exemple **''\''**. sélectionne un point littéral.| |
- | | ''^ '' | Correspond à la position de départ dans la chaîne. | | + | | **''^ ''** | Correspond à la position de départ dans la chaîne. | |
- | | ''$'' | Correspond à la position de fin de la chaîne ou la position juste avant un saut de ligne de chaîne interminable. | | + | | **''$''** | Correspond à la position de fin de la chaîne ou la position juste avant un saut de ligne de chaîne interminable. | |
- | | ''( )'' | 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 \ (\). | | + | | **''[ ]''** | Correspond à un seul caractère qui est contenue dans ''[ ]''. On peut mélanger [abcx-z] correspond à ''a'', ''b'', ''c'', ''x'', ''y'' ou ''z'', de même que ''[a-cx-z]''. Le caractère ''-'' est traité comme un caractère littéral si c'est le dernier ou le premier. | |
- | | ''\n'' | Correspond au nombre ''n'' de sous-chaîne, où ''n'' est un chiffre de 1 à 9.\\ Écriture équivalente à ''{n}'' | | + | | **''[^ ]''** | Correspond à un caractère qui n'est pas contenu dans les parenthèses. Par exemple, ''[^abc]'' correspond à tout caractère autre que a, b ou c. | |
- | | ''*'' | 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. | | + | | **''[:class:]''**\\ [[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:]'' | |
- | | ''{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''. | | + | |''\( \)'' et ''\{ \}'' | Avec les ERb le caractère ''\'' donne un sens particulier aux parenthèses et crochets.\\ (anciennes versions de Bash)\\ Mais avec les ERe ''\'' devant parenthèses et crochets les échappe | |
- | | ''{ }'' | "exactement trois fois" par exemple ''a{3}'' correspond strictement à ''aaa'' . | | + | |**Caractères des ERe** | **Significations** | |
- | | ''{n,}'' | "jusqu'à trois fois". «trois fois ou plus». Par exemple, ''{3,}'' correspond aaa ou aaaa, etc. (équivalent de ''a*'') | | + | | **''?''** | Correspond zéro ou une fois à l'élément précédent. Par exemple, ''ab?c'' correspond seulement ''ac'' ou ''abc''. | |
- | | ''{,n}'' | ''a{,3}'' "jusqu'à trois fois". Correspond à la ''chaîne vide'' ou ''a'' ou ''aa'' ou ''aaa'' (équivalent de ''a|aa|aaa''.| | + | | **''+''** | 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". | |
- | |POSIX extended | Bash avec correctif, sinon il faut \ devant parenthèse et crochet. ''\( \)'' et ''\{ \}'' | | + | | **''|''** | Alternative ''er1|er2|er3''.\\ Par exemple, ''abc|def'' correspond à ''abc'' ou ''def''. | |
- | |autres caractères | signification | | + | |**Caractères ERe pouvant servir à élaborer des sous-chaînes** | **Significations** | |
- | | ''?'' | Correspond zéro ou une fois à l'élément précédent. Par exemple, ''ab?c'' correspond seulement ''ac'' ou ''abc''. | | + | | **''( )''** | Regroupement | |
- | | ''+'' | 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". | | + | | **''{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''. | |
- | | ''|'' | Correspond à l'expression d'avant ''ou'' l'expression d'après l'opérateur. Par exemple, ''abc|def'' correspond à ''abc'' ou ''def''. | | + | | **''{ }''** | "exactement trois fois" par exemple ''a{3}'' correspond strictement à ''aaa'' . | |
- | | 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:]'' | | + | | **''{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''.| | ||
+ | |||
* Référence (ce tableau résume le contenu de ces trois liens) : | * Référence (ce tableau résume le contenu de ces trois liens) : | ||
Ligne 351: | Ligne 354: | ||
[[utilisateurs:hypathie:tutos:accueil?&#les-caracteres-utilises-pour-creer-des-regexp-avec-sed|Les caractères utilisés pour créer des regexp avec sed]] | [[utilisateurs:hypathie:tutos:accueil?&#les-caracteres-utilises-pour-creer-des-regexp-avec-sed|Les caractères utilisés pour créer des regexp avec sed]] | ||
- | =====INDEX 2 : caractères regexp egrep ===== | ||
- | =====INDEX 3 : REGEXP communs à Perl, PHP, JavaScript, MySQL===== | ||
- | Un petit rappel non exhaustif des caractères spéciaux relatifs aux expressions rationnelles utilisable avec Perl, PHP, JavaScript, MySQL. | + | =====INDEX 2 : REGEXP communs à Perl, Emacs, vim===== |
+ | |||
+ | Un petit rappel non exhaustif des caractères spéciaux qui leur sont communs. | ||
^ ^ ^ | ^ ^ ^ | ||
Ligne 372: | Ligne 375: | ||
* Référence :\\ [[http://oreilly.com/php/excerpts/php-mysql-javascript/regex-in-php-javascript.html]] | * Référence :\\ [[http://oreilly.com/php/excerpts/php-mysql-javascript/regex-in-php-javascript.html]] | ||
- | * Apprendre à utiliser les expressions régulières sous perl :\\ [[http://perldoc.perl.org/perlrequick.html]]\\ [[http://perldoc.perl.org/perlre.html]] | + | * Apprendre à utiliser les expressions régulières sous perl :\\ [[https://ensiwiki.ensimag.fr/index.php/Expressions_r%C3%A9guli%C3%A8res]]\\ [[http://perldoc.perl.org/perlrequick.html]]\\ [[http://perldoc.perl.org/perlre.html]] |
- | =====INDEX 4 : l'ordre des caractères ASCII ===== | + | =====INDEX 3 : l'ordre des caractères ASCII ===== |
Voici : | Voici : | ||