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 | ||
utilisateurs:hypathie:tutos:er-ere-et-commandes [07/08/2014 07:15] Hypathie |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Expressions régulières selon les commandes ====== | ||
- | |||
- | ====tableau ER et ERE par commandes==== | ||
- | |||
- | ^ caractères ^ [...] ^ . ^ * ^<nowiki>^</nowiki> ^ $ ^ ? ^ + ^ <nowiki>|</nowiki> ^( ) ^ <nowiki>[:class:]</nowiki> ^ | ||
- | | grep | ok |ok |ok |ok |ok |- |- | - | - | - | | ||
- | | grep -E | ok |ok | ok|ok |ok |ok|ok | ok |ok | ok <nowiki>[[:class:]]</nowiki> | | ||
- | | sed | ok |ok |ok |ok |ok |- |- | - | - | - | | ||
- | | sed -r | ok |ok | ok|ok |ok |ok|ok | ok |ok | ok <nowiki>[[:class:]]</nowiki> | | ||
- | | awk | ok |ok | ok|ok |ok |ok|ok | ok |ok | ok <nowiki>[:class:]</nowiki> | | ||
- | |||
- | ====détail des classes ==== | ||
- | |||
- | |||
- | ^ ^ ^ | ||
- | |''<nowiki>[[:alnum:]]</nowiki>'' | Alpha-numerique [a-z A-Z 0-9]| | ||
- | |''<nowiki>[[:alpha:]]</nowiki>'' | Alphabetic [a-z A-Z] | | ||
- | |''<nowiki>[[:blank:]]</nowiki>'' | Espaces ou tabulations | | ||
- | |''<nowiki>[[:cntrl:]]</nowiki>'' | Caractères de contrôle | | ||
- | |''<nowiki>[[:digit:]]</nowiki>'' | Nombres [0-9] | | ||
- | |''<nowiki>[[:graph:]]</nowiki>'' | Tous les caractères visibles (à l'exclusion des espaces)| | ||
- | |''<nowiki>[[:lower:]]</nowiki>'' | Lettres minuscules [a-z] | | ||
- | |''<nowiki>[[:print:]]</nowiki>'' | Caractères imprimables (tous caractères sauf ceux de contrôle)| | ||
- | |''<nowiki> | ||
- | [[:punct:]] </nowiki>'' | Les caractères de ponctuation | | ||
- | |''<nowiki>[[:space:]]</nowiki>'' | Les espaces | | ||
- | |''<nowiki>[[:upper:]]</nowiki>'' | Les lettres majuscules [A-Z] | | ||
- | |''<nowiki>[[:xdigit:]]</nowiki>'' | Chiffres hexadécimaux [0-9 a-f A-F] | | ||
- | |||
- | |||
- | |||
- | [[http://www.man-linux-magique.net/man1/grep.html|man grep fr]]\\ | ||
- | |||
- | [[http://heirloom.sourceforge.net/man/egrep.1.html|egrep en ]]\\ | ||
- | |||
- | [[http://manpagesfr.free.fr/man/man1/sed.1.html |man sed fr ]]\\ | ||
- | |||
- | [[http://linux.about.com/library/cmd/blcmdl1_awk.htm |man awk]] | ||
- | |||
- | |||
- | ====ERb et ERe : tableaux récapitulatifs==== | ||
- | Récapitulatif selon deux types d'expressions régulières :\\ | ||
- | |||
- | -les expressions régulière basiques ERb\\ | ||
- | -les expressions régulières étendues ERe\\ | ||
- | |||
- | ===caractères communs au ERb et ERe=== | ||
- | |||
- | ^expressions ^Modèles reconnus ^ | ||
- | |**c** | Tout non métacaractère c.| | ||
- | |**''<nowiki>\</nowiki>''** |Échappement du caractère spécial.\\ Par exemple **''\.''** sélectionne un point littéral.| | ||
- | |**''<nowiki>^</nowiki>''** |Test effectué au début de la chaîne.| | ||
- | |**''$''** |Test effectué à la fin de la chaîne.| | ||
- | |**''.''** |Tout caractère sauf une fin de ligne.| | ||
- | |**''<nowiki> *</nowiki>''** |Zéro à n chaînes consécutives validées par l’expression régulière r.| | ||
- | |**''<nowiki> \< </nowiki>''** |début d'un mot (caractères pouvant faire partie de <nowiki>[A-Z-z0-9]</nowiki>| | ||
- | |**''<nowiki> \> </nowiki>''** |Fin d'un mot| | ||
- | |**''<nowiki>[liste_de_caractères]</nowiki>''** |Un caractère cité dans la liste | | ||
- | |**''<nowiki>[^liste_de_caractères]</nowiki>''** |Un carcatère qui n'est pas dans la liste | | ||
- | |||
- | * Exemples : | ||
- | |||
- | **''<nowiki>blabla</nowiki>''** : chaîne contenant "blabla"\\ | ||
- | |||
- | **''<nowiki>^blabla</nowiki>''** : chaîne commençant par "blabla"\\ | ||
- | |||
- | **''<nowiki>blabla$</nowiki>''** : chaîne finissant par "blabla"\\ | ||
- | |||
- | **''<nowiki>^[A-Z][5-8].$</nowiki>''** : chaîne composées de trois caractères, dans l'ordre :\\ une majuscule, un chiffre compris entre 5 et 8, un caractère quelconque\\ | ||
- | |||
- | **''<nowiki>^$</nowiki>''** : chaîne vide\\ | ||
- | |||
- | **''<nowiki>^[ ]*$</nowiki>''** : chaîne contenant zéro ou plusieurs espace(s) ou tabulation(s)\\ | ||
- | |||
- | **''<nowiki>\<tout</nowiki>''** : mot commençant par "tout", toutefois\\ | ||
- | |||
- | **''<nowiki>\<tout\></nowiki>''** : le mot "tout"\\ | ||
- | |||
- | ===Caractères spécifiques aux ERb=== | ||
- | |||
- | ^expressions ^Modèles reconnus ^ | ||
- | |**''<nowiki>\{m\}</nowiki>''** | m fois le caractère précédent | | ||
- | |**''<nowiki>\{m,\} </nowiki>''** | au moins m fois le caractère précédent | | ||
- | |**''<nowiki>\{m,n\} </nowiki>''** | entre m et n fois le caractère précédent | | ||
- | |**''<nowiki>\(ERb\)</nowiki>''** | mémorisation d'une ERb | | ||
- | |**''<nowiki>\1, \2, ...</nowiki>''** | Rappel de mémorisation | | ||
- | |||
- | -> Le caractère **''\''** donne une signification spéciale aux parenthèses et accolades, au lieu de les rendre littérales. | ||
- | |||
- | |||
- | ===Caractères spécifiques aux expressions rationnelles étentues (ERe) === | ||
- | |||
- | ^expressions ^ Modèles reconnus ^ | ||
- | |**''?''** | zéro ou une fois le caractère ou le regroupement précédent | | ||
- | |**''+''** |une à n fois le caractère ou regroupement précédent | | ||
- | |**''<nowiki>{m}</nowiki>''** |m fois le caractère précédent | | ||
- | |**''<nowiki>{m,}</nowiki>''** | m fois le caractère précédent | | ||
- | |**''<nowiki>{m,n}</nowiki>''** | entre m et n fois le caractère précédent | | ||
- | |**''<nowiki>( er1)</nowiki>''** | regroupement | | ||
- | |**''<nowiki>er1|er2|er3</nowiki>''** | alternative | | ||
- | |**''<nowiki>(er)+</nowiki>''**|Une ou plus de une chaîne(s) consécutive(s) validée(s) "er".| | ||
- | |**''<nowiki>(er)*</nowiki>''**|zéro ou plus de zéro chaîne(s) consécutive(s) validée(s) par "er" | | ||
- | |**''<nowiki>(er)?</nowiki>''**|une chaîne bulle ou toute chaîne validée par "er".| | ||
- | |**''<nowiki>[c1c2...]</nowiki>''**|Tout caractère expressément listé entre les crochets.| | ||
- | |**''<nowiki>[^c1c2...]</nowiki>''**|Tout caractère excepté ceux qui sont expressément listés entre les crochets.| | ||
- | |**''<nowiki>[c1-c2]</nowiki>''**|Tout caractère appartenant à l’intervalle c1 c2, bornes comprises.| | ||
- | |**''<nowiki>er1|er2</nowiki>''**|Toute chaîne de caractères validée soit par er1 soit par er2.| | ||
- | |**''<nowiki>(er)(er)</nowiki>''**|Toute chaîne validée par l’expression er, chaîne vide exclue.| | ||
- | |**''<nowiki>(er1)(er2)</nowiki>''**|Toute chaîne de caractères de type AB, dans laquelle l’expression régulière er1 valide A et l’expression régulière er2 valide B.| | ||
- | |||
- | ===Les raccourcis ne sont pas posix=== | ||
- | |||
- | * __sed__ : | ||
- | |||
- | ^Séquences ^Séquences ^ | ||
- | |**''<nowiki>\f</nowiki>''** | Produit ou correspond à un saut | | ||
- | |**''<nowiki>\n</nowiki>''** | Produit ou correspond à un retour à la ligne | | ||
- | |**''<nowiki>\t</nowiki>''** | Produit ou correspond à un onglet horizontal | | ||
- | |**''<nowiki>\v</nowiki>''** | Produit ou correspond à une tabulation verticale | | ||
- | |**''<nowiki>\w</nowiki>''** | Synonyme de **''<nowiki>[[:alnum:]]</nowiki>''** → correspond à un mot. | | ||
- | |**''<nowiki>\W</nowiki>''** | Synonyme de **''<nowiki>[^[:alnum]]</nowiki>''** → ce qui autre qu'un mot. | | ||
- | |**''<nowiki>\b</nowiki>''** | Correspond à une chaîne vide (blanc) à l'extrémité d'un mot | | ||
- | |||
- | |||
- | |||
- | |||
- | * __awk__ : | ||
- | |||
- | ^Séquences ^Séquences ^ | ||
- | |**''<nowiki>\b </nowiki>''** | backspace (supprime le dernier caractère d'une chaîne) | | ||
- | |**''<nowiki>\f </nowiki>''** | formfeed (nouvelle page) | | ||
- | |**''<nowiki>\r </nowiki>''** | carriage return (retour à la ligne) | | ||
- | |**''<nowiki>\t </nowiki>''** | tabulation (crée une tabulation de dix espaces) | | ||
- | |**''<nowiki>\c </nowiki>''** | tout caractère pris sous sa forme littérale\\ excepté **''<nowiki>\</nowiki>''** | | ||
- | |||
- | |||
- | ====Pour aller plus loin ==== | ||
- | Pour les PCRE (perl) supportée par egrep (grep -E ; sed et et awk ) voir [[http://www.unix.com/man-page/linux/3/pcresyntax/|pcresyntax(3)]] et [[http://manpages.courier-mta.org/htmlman3/pcresyntax.3.html|pcrepattern(3)]]\\ | ||
- | |||
- | Et en français [[http://www.expreg.com/pcre.php]] | ||
- | |||