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 12:04] Hypathie [INDEX] |
doc:programmation:shells:bash-vii-globs-etendus-regex [09/07/2014 13:04] Hypathie [INDEX 1] |
||
---|---|---|---|
Ligne 342: | Ligne 342: | ||
**Un grand merci à captnfab pour conseils avisés et toutes ses corrections.** | **Un grand merci à captnfab pour conseils avisés et toutes ses corrections.** | ||
- | =====INDEX ===== | + | =====INDEX 1===== |
- | ====1) Rappel des principaux caractères des expressions rationnelles ==== | + | ==== Rappel des principaux caractères des expressions rationnelles ==== |
Un petit rappel non exhaustif des caractères spéciaux relatifs aux expressions rationnelles communs à ''grep'', ''sed'', ''awk'', ''perl''.\\ | Un petit rappel non exhaustif des caractères spéciaux relatifs aux expressions rationnelles communs à ''grep'', ''sed'', ''awk'', ''perl''.\\ | ||
Ligne 350: | Ligne 350: | ||
* http://http://culot.org/public/Docs/regexp.html\\ | * http://http://culot.org/public/Docs/regexp.html\\ | ||
+ | ^ ^ ^ | ||
+ | |Correspondance : | ''m/motif/''\\ ''/motif/'' | | ||
+ | |Substitution : | ''s/motif/chaîne/'' | | ||
+ | |Correspondance entre regex et variable : | '' =~ ''\\ $v =~ m/toto/\\ $v =~ s/toto/titi/ | | ||
+ | |Les caractères spéciaux : | ''\'' ''|'' ''( )'' ''[ ]'' ''{ }'' ''^'' ''$'' ''*'' ''+'' ''?'' ''.'' | | ||
+ | |Pour représenter saut de ligne : | ''\n'' | | ||
+ | |Pour représenter retour chariot : | ''\r'' | | ||
+ | |Pour représenter tabulation : | ''\t'' | | ||
+ | |Pour représenter saut de page : | '' \f''| | ||
+ | |Pour représenter échappement : | ''\e'' | | ||
+ | |Le point représente n'importe quel caractère. | ''.'' | | ||
+ | |La paire de crochet "matche" l'un des caractères entre crochet | ''[ ]'' | | ||
+ | |Intervalle :\\ '' ''\\ Tout intervalle est envisageable,\\ par exemple ''u-w'' ou toute autre combinaison tant que\\ le numéro ''ASCII'' du premier caractère est inférieur à celui du second.\\ Un intervalle peut prendre place au milieu d'un motif quelconque.\\ Pour rechercher un ''-'' littéral, le mettre en dernier dans un intervalle. | \\ '' ''\\ '' ''\\ ''[a-z]'' (l'une des lettres minuscules de l'alphabet)\\ ''[A-Z]'' (l'une des lettres majuscules de l'alphabet)\\ ''[0-9]'' (un des caractères numériques) | | ||
+ | |Raccourcis pour des ensembles courants\\ | ''\d'' qui correspond à ''[0-9]''\\ ''\D'' qui correspond à ''[cfl0-9]''\\ ''\w'' qui correspond à ''[a-zA-Z0-9_]''\\ ''\W'' qui correspond à ''[cfla-zA-Z0-9_]''\\ ''\t'' qui correspond à une tabulation\\ ''\n'' qui correspond à un saut de ligne\\ ''\n'' qui correspond à un saut de ligne\\ ''\r'' qui correspond à un retour chariot\\ ''\s'' qui correspond à un espace blanc\\ ''\S'' qui correspond à n'est pas un espace blanc | | ||
+ | |Quantificateurs :\\ '' ''\\ 0 fois ou plus\\ 1 fois ou plus\\ 0 ou 1 fois\\ n fois exactement | '' ''\\ '' ''\\ ''*''\\ ''+''\\ ''?''\\ ''{n}'' | | ||
+ | |Mémorisation : \\ de variables $1 $2 ...| ''( )'' ''( )'' ... | | ||
+ | |Exemple:\\ '' ''\\ ''prenom.nom@domaine.ext''\\ (\w+) : $1\\ (\w+) : $2 | \\ '' ''\\ ''/\b(\w+)\.(\w+)@\w+\.w{2,4}\b/'' | | ||
+ | |Substitution de variables : | ''$s = "toto";''\\ ''if( $v =~ m/$s/ ) { ... }'' | | ||
+ | |Options : | ''i'' : Rend le motif insensible à la case (minuscules/majuscules)\\ '' '' l'expression régulière ''m/toto/i''\\ ''g'' : Permet d'effectuer toutes les substitutions,\\ '' '' et pas que la première.\\ ''e'' : Évalue le membre de droite comme une expression Perl.\\ ''o'' : La compilation a lieu une seule fois lors de la première exécution. | | ||
- | <code> | + | =====INDEX 2 ===== |
- | Syntaxe correspondance : m/motif/ ou /motif/ | + | Voici l'ordre des caractères ASCII : |
- | Syntaxe substitution : s/motif/chaîne/ | + | |
- | Lier une variable à une regex : =~ | + | |
- | $v =~ m/toto/ | + | |
- | $v =~ s/toto/titi/ | + | |
- | Les caractères spéciaux : \ | ( ) [ ] { } ^ $ * + ? . | + | |
- | + | ||
- | pour représenter saut de ligne : \n | + | |
- | pour représenter retour chariot : \r | + | |
- | pour représenter tabulation : \t | + | |
- | pour représenter saut de page : \f | + | |
- | pour représenter échappement : \e | + | |
- | + | ||
- | Le point : . n'importe quel caractère | + | |
- | + | ||
- | La paire de crochet : [ ] matche l'un des caractères entre crochet | + | |
- | + | ||
- | Intervalle : [a-z] l'une des lettres minuscules de l'alphabet | + | |
- | : [A-Z] l'une des lettres majusculs de l'alphabet | + | |
- | : [0-9] un des caractères numériques | + | |
- | Tout intervalle est envisageable, | + | |
- | par exemple u-w ou toute autre combinaison tant que | + | |
- | le numéro ASCII du premier caractère est inférieur à celui du second. | + | |
- | + | ||
- | Un intervalle peut prendre place au milieu d'un motif quelconque. | + | |
- | + | ||
- | Pour rechercher un - littéral, le mettre en dernier dans un intervalle. | + | |
- | + | ||
- | Raccourcis pour des ensembles courants : | + | |
- | (motifs abrégés) : \d qui correspond à [0-9] | + | |
- | : \D qui correspond à [cfl0-9] | + | |
- | : \w qui correspond à [a-zA-Z0-9_] | + | |
- | : \W qui correspond à [cfla-zA-Z0-9_] | + | |
- | : \t qui correspond à une tabulation | + | |
- | : \n qui correspond à un saut de ligne | + | |
- | : \n qui correspond à un saut de ligne | + | |
- | : \r qui correspond à un retour chariot | + | |
- | : \s qui correspond à un espace blanc | + | |
- | : \S qui correspond à N’EST PAS un espace blanc | + | |
- | + | ||
- | Quantificateurs | + | |
- | 0 fois ou plus : * | + | |
- | 1 fois ou plus : + | + | |
- | 0 ou 1 fois : ? | + | |
- | n fois exactement : {n} | + | |
- | + | ||
- | Mémorisation : ( ) ( ) | + | |
- | ^ ^ | + | |
- | : $1 $2 | + | |
- | + | ||
- | : prenom.nom@domaine.ext | + | |
- | : /\b(\w+)\.(\w+)@\w+\.w{2,4}\b/ | + | |
- | : $1 $2 | + | |
- | + | ||
- | Substitution de variables : $s = "toto"; | + | |
- | : if( $v =~ m/$s/ ) { ... } | + | |
- | + | ||
- | Options : i Rend le motif insensible à la case (minuscules/majuscules) | + | |
- | l'expression régulière m/toto/i | + | |
- | : g Permet d'effectuer toutes les substitutions, | + | |
- | pas que la première. | + | |
- | : e Évalue le membre de droite comme une expression | + | |
- | Perl. | + | |
- | : o La compilation a lieu une seule fois lors de la première | + | |
- | exécution. | + | |
- | </code> | + | |
- | + | ||
- | ====2) ASCII==== | + | |
^ ordre ^ caractère ^ ordre ^ caractère ^ ordre ^ caractère ^ ordre ^ caractère ^ ordre ^ caractère ^ ordre ^ caractère ^ | ^ ordre ^ caractère ^ ordre ^ caractère ^ ordre ^ caractère ^ ordre ^ caractère ^ ordre ^ caractère ^ ordre ^ caractère ^ |