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 [02/08/2014 11:39] Hypathie |
utilisateurs:hypathie:tutos:er-ere-et-commandes [03/08/2014 12:34] 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>\m</nowiki>''** | Échappement du caractère "m"| |
- | |**''<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> (r)*</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| |
- | |**''<nowiki>r1|r2</nowiki>''**|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:]''**\\ avec sed : **''<nowiki>[[:class:]]</nowiki>''**|| | + | |
- | |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> | ||