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:shell:regexp [22/09/2013 10:24] smolski [Les caractères regexp] |
doc:programmation:shell:regexp [22/09/2013 11:09] smolski [Les caractères regexp] |
||
---|---|---|---|
Ligne 148: | Ligne 148: | ||
<note tip>On appelle aussi ce caractère un ''joker''((En bash, le caractère joker est ''?''))</note> | <note tip>On appelle aussi ce caractère un ''joker''((En bash, le caractère joker est ''?''))</note> | ||
- | === TP 02 : === | + | ==== Les caractères échappés ==== |
+ | Tous nos caractères spéciaux ont des significations particulières, nous l'avons vu avec le .((point)), c'est vrai pour les autres. \\ | ||
+ | Ainsi, pour reconnaître chacun d'eux en tant que caractère non spécial, il faut l'échapper par un \((anti-slash)). | ||
+ | Ainsi la combinaison : ''\.''((anti-slash point)) reconnaît simplement ''.''((point)) \\ | ||
+ | Comme la combinaison : ''\\''((anti-slash antislash)) reconnaît ''\''((anti-slash)) \\ | ||
+ | Ou encore la combinaison : ''\\\.''((anti-slash anti-slash anti-slash point)) reconnaît \.((anti-slash point)) | ||
+ | //Eh oui !// :-D | ||
+ | ==== Les caractères répétition ==== | ||
+ | |||
+ | Quand on ne sait pas combien de fois un caractère va apparaître, on l'indique avec une étoile * \\ | ||
+ | |||
+ | **Exemple** : \\ | ||
+ | ''Ah*'' reconnaît aussi bien « Ah » que « Ahhhhhhhhhhhhhhhhhhhhhhhhhh » ou même « A » | ||
+ | |||
+ | Quand on ne sait pas si un caractère va apparaître une fois ou jamais, on l'indique avec un point d'interrogation échappé ''\?'' \\ | ||
+ | |||
+ | **Exemple** : \\ | ||
+ | La **REGEXP** : ''Chevals\?'' reconnaît aussi bien « Cheval » que « Chevals ». \\ | ||
+ | Autre exemple : ''coq\?uille'' | ||
+ | |||
+ | ==== Les ensembles de caractères possibles ==== | ||
+ | |||
+ | ''Par[lt]ez'' reconnaît aussi bien « Parlez » que « Partez ». \\ | ||
+ | ''[a-z]'' reconnaît n'importe quelle lettre minuscule (non altérée)2) de l'alphabet. \\ | ||
+ | ''[A-Za-z]'' reconnaît n'importe quelle lettre (non altérée) de l'alphabet. \\ | ||
+ | ''[0-9\-]'' reconnaît les chiffres et le caractère « - ». | ||
+ | |||
+ | === Remarque : === | ||
+ | Il y a aussi des classes de caractères déjà prédéfinies. | ||
+ | |||
+ | **Tableau des classes prédéfinies** [[http://www.commentcamarche.net/contents/php/phpreg.php3 | Source]] (merci titia) :-) | ||
+ | ^ classe ^ Resultat ^ | ||
+ | |[:alnum:] | caractères alphanumériques (équivalent à [A-Za-z0-9])| | ||
+ | |[:alpha:] | caractères alphabétiques ([A-Za-z])| | ||
+ | |[:blank:] | caractères blanc (espace, tabulation)| | ||
+ | |[:ctrl:] | caractères de contrôle (les premiers du code ASCII| | ||
+ | |[:digit:] | chiffre ([0-9])| | ||
+ | |[:graph:] | caractère d'imprimerie (qui fait une marque sur l'écran en quelque sorte)| | ||
+ | |[:print:] | caractère imprimable (qui passe à l'imprimante ... tout sauf les caractères de contrôle)| | ||
+ | |[:punct:] | caractère de ponctuation| | ||
+ | |[:space:] | caractère d'espacement| | ||
+ | |[:upper:] | caractère majuscule| | ||
+ | |[:xdigit:] | caractère hexadécimal| | ||
+ | |||
+ | ==== Les caractères interdits ==== | ||
+ | |||
+ | ''[^x]'' reconnaît tous les caractères sauf « x » \\ | ||
+ | ''[^xy]'' reconnaît tous les caractères sauf « x » et « y » \\ | ||
+ | ''[^a-z]'' reconnaît tous les caractères sauf les lettres minuscules non altérées | ||
+ | |||
+ | ==== Début et fin de ligne ==== | ||
+ | |||
+ | ''^'' désigne un début de ligne \\ | ||
+ | ''$'' désigne une fin de ligne | ||
+ | |||
+ | **Exemple :** | ||
+ | |||
+ | ''^Pouet'' reconnaîtra le motif //Pouet// s'il se trouve en début de ligne. | ||
+ | |||
+ | ==== Combinaisons ==== | ||
+ | |||
+ | ''[ab]*'' comme [ab] reconnaît aussi bien « a » que « b », [ab]* reconnaît aussi bien « aaaaaaaaa » que « abababbbbbbbbb » ou que « babbbaaa » \\ | ||
+ | ''Abra*[ca]*dabrante\?'' reconnaît les chaînes commençant par « Abr », suivi par un nombre quelconque de « a », puis un nombre quelconque de « c » et de « a » suivis par « dabrant », suivi ou non par « e ». | ||
+ | |||
+ | //De nombreux TP restent à suivre...// :-D | ||
===== Liens utiles : ===== | ===== Liens utiles : ===== | ||