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 | ||
utilisateurs:hypathie:tutos:er-ere-et-commandes [31/07/2014 15:42] Hypathie |
utilisateurs:hypathie:tutos:er-ere-et-commandes [07/08/2014 07:15] Hypathie |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
====tableau ER et ERE par commandes==== | ====tableau ER et ERE par commandes==== | ||
- | ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ | + | ^ caractères ^ [...] ^ . ^ * ^<nowiki>^</nowiki> ^ $ ^ ? ^ + ^ <nowiki>|</nowiki> ^( ) ^ <nowiki>[:class:]</nowiki> ^ |
- | |caractères | [...] | . | * | <nowiki>^</nowiki> | $ |? | + | <nowiki>|</nowiki> | () |<nowiki>[:class:]</nowiki> | | + | | grep | ok |ok |ok |ok |ok |- |- | - | - | - | |
- | | grep | ok |ok |ok |ok |ok |- |- | - | - | - | | + | | grep -E | ok |ok | ok|ok |ok |ok|ok | ok |ok | ok <nowiki>[[:class:]]</nowiki> | |
- | | grep -E | ok |ok | ok|ok |ok |ok|ok | ok |ok | ok | | + | | sed | ok |ok |ok |ok |ok |- |- | - | - | - | |
- | | sed | ok |ok |ok |ok |ok |- |- | - | - | - | | + | | sed -r | ok |ok | ok|ok |ok |ok|ok | ok |ok | ok <nowiki>[[:class:]]</nowiki> | |
- | | sed -r | ok |ok | ok|ok |ok |ok|ok | ok |ok | ok | | + | | awk | ok |ok | ok|ok |ok |ok|ok | ok |ok | ok <nowiki>[:class:]</nowiki> | |
- | | awk | ok |ok | ok|ok |ok |ok|ok | ok |ok | ok | | + | |
+ | ====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] | | ||
Ligne 21: | Ligne 39: | ||
- | ====Tableau récapitulatif==== | + | ====ERb et ERe : tableaux récapitulatifs==== |
+ | Récapitulatif selon deux types d'expressions régulières :\\ | ||
- | ^Caractères ^modèles reconnus ^ | + | -les expressions régulière basiques ERb\\ |
- | |c|Tout non métacaractère c.| | + | -les expressions régulières étendues ERe\\ |
- | |''\m''|Une séquence de tabulation ou tout métacaractère\\ m pris au sens littéral.| | + | |
- | |''^''|Test effectué au début de la chaîne.| | + | ===caractères communs au ERb et ERe=== |
- | |''$''|Test effectué à la fin de la chaîne.| | + | |
- | |''.''|Tout caractère sauf une fin de ligne.| | + | ^expressions ^Modèles reconnus ^ |
- | |''<nowiki>\< </nowiki>''|début d'un mot (caractères pouvant faire partie de <nowiki>[A-Z-z0-9]</nowiki>| | + | |**c** | Tout non métacaractère c.| |
- | |''\>''|fin d'un mot| | + | |**''<nowiki>\</nowiki>''** |Échappement du caractère spécial.\\ Par exemple **''\.''** sélectionne un point littéral.| |
- | |''<nowiki>(r)*</nowiki>''|Zéro à n chaînes consécutives validées par l’expression régulière r.| | + | |**''<nowiki>^</nowiki>''** |Test effectué au début de la chaîne.| |
- | |''<nowiki>(r)+</nowiki>''|Une à n chaînes consécutives validées par l’expression régulière r. | + | |**''$''** |Test effectué à la fin de la chaîne.| |
- | |''<nowiki>(r)?</nowiki>''|Toute chaîne validée par l’expression r, chaîne vide incluse.| | + | |**''.''** |Tout caractère sauf une fin de ligne.| |
- | |''<nowiki>[c1c2...]</nowiki>''|Tout caractère expressément listé entre les crochets.| | + | |**''<nowiki> *</nowiki>''** |Zéro à n chaînes consécutives validées par l’expression régulière r.| |
- | |''<nowiki>[^c1c2...]</nowiki>''|Tout caractère excepté ceux qui sont expressément listés entre les crochets.| | + | |**''<nowiki> \< </nowiki>''** |début d'un mot (caractères pouvant faire partie de <nowiki>[A-Z-z0-9]</nowiki>| |
- | |''<nowiki>[c1-c2]</nowiki>''|Tout caractère appartenant à l’intervalle c1 c2, bornes comprises.| | + | |**''<nowiki> \> </nowiki>''** |Fin d'un mot| |
- | |''r1|r2''|Toute chaîne de caractères validée soit par r1 soit par r2.| | + | |**''<nowiki>[liste_de_caractères]</nowiki>''** |Un caractère cité dans la liste | |
- | |''<nowiki>(r)(r)</nowiki>''|Toute chaîne validée par l’expression r, chaîne vide exclue.| | + | |**''<nowiki>[^liste_de_caractères]</nowiki>''** |Un carcatère qui n'est pas dans la liste | |
- | |Les classes |''[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:]''|| | + | |
- | |awk uniquement || | + | * Exemples : |
- | |''<nowiki>(r1)(r2)</nowiki>''|Toute chaîne de caractères de type AB, dans laquelle l’expression régulière r1 valide A et l’expression régulière r2 valide B.| | + | |
+ | **''<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=== | ===Les raccourcis ne sont pas posix=== | ||
- | <note tip> | + | * __sed__ : |
- | - Ils peuvent différer d'un programme à l'autre.\\ | + | |
+ | ^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)]]\\ | ||
- | Voir : [[http://docs.postgresqlfr.org/9.0/functions-matching.html#posix-character-entry-escapes-table]] | + | Et en français [[http://www.expreg.com/pcre.php]] |
- | - Raccourcis très utilisés pour awk et sed :\\ | ||
- | * **''\n''** : Passage à la ligne | ||
- | * **''\t''** : Tabulation | ||
- | </note> | ||