User Tools

Site Tools


informatique:regexp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
informatique:regexp [2019/09/09 10:34]
pteu [exclure un motif]
informatique:regexp [2019/12/08 14:25] (current)
pteu cheat sheet
Line 1: Line 1:
 ======Expressions régulières====== ======Expressions régulières======
  
-Les expressions régulières,​ ou expressions rationnelles,​ ou motif (ou même regexp en anglais), ​est une suite de caractères ​issue de la logique (mathématique) qui permet ​de décrire des chaînes de caractères. Il existe différentes notations, bien qu'​elles se ressemblent beaucoup : POSIX, PCRE (Perl-Compatible Regular Expressions),​ Python, etc... [[https://​fr.wikipedia.org/​wiki/​Expression_rationnelle#​Standardisation|(plus de détail ​sur wikipedia)]]+Les expressions régulières,​ ou expressions rationnelles,​ ou motifs ​(ou même regexp en anglais), ​sont une suite de caractères ​issues ​de la logique (mathématique)qui permettent ​de décrire des chaînes de caractères. Il existe différentes notations, bien qu'​elles se ressemblent beaucoup : POSIX, PCRE (Perl-Compatible Regular Expressions),​ Python, etc... [[https://​fr.wikipedia.org/​wiki/​Expression_rationnelle#​Standardisation|(plus de détails ​sur wikipedia)]] 
 + 
 +Il faut toujours garder sous la main un testeur d'​expression régulière,​ comme l'​excellent [[https://​regex101.com/​|regex101]].
  
 =====Syntaxe===== =====Syntaxe=====
Line 10: Line 12:
     (?: parenthèses non capturantes     (?: parenthèses non capturantes
     (?= motif obligatoire     (?= motif obligatoire
-{}  contiennent un ou plusieurs chiffres séparés par des virgules ​représentent l'encadrement du nombre de fois  +{}  contiennent un ou plusieurs chiffres séparés par des virgules, qui indiquent le nombre d'occurence 
-    ​que l'​élément précédant les accolades ​peut se reproduire ​(par exemple p{3,5} correspond à ppp, pppp ou ppppp)+    ​attendu de l'​élément précédant les accolades (par exemple p{3,5} correspond à ppp, pppp ou ppppp)
 -   ​défini un intervalle (par exemple [a-d] équivaut à [abcd]) -   ​défini un intervalle (par exemple [a-d] équivaut à [abcd])
 .   ​représente un caractère unique .   ​représente un caractère unique
Line 44: Line 46:
 [:​alnum:​] ​ caractères alphanumériques (équivalent à [A-Za-z0-9]) [:​alnum:​] ​ caractères alphanumériques (équivalent à [A-Za-z0-9])
 [:​alpha:​] ​ caractères alphabétiques ([A-Za-z]) [:​alpha:​] ​ caractères alphabétiques ([A-Za-z])
-[:​blank:​] ​ caractères ​blanc (espace, tabulation)+[:​blank:​] ​ caractères ​blancs ​(espace, tabulation)
 [:​ctrl:​] ​  ​caractères de contrôle (les premiers du code ASCII) [:​ctrl:​] ​  ​caractères de contrôle (les premiers du code ASCII)
-[:​digit:​]  ​chiffre ​([0-9]) +[:​digit:​]  ​chiffres ​([0-9]) 
-[:​graph:​] ​ caractères d'​imprimerie (qui fait une marque sur l'​écran en quelque sorte) +[:​graph:​] ​ caractères d'​imprimerie (affichage à l'​écran en quelque sorte) 
-[:​lower:​] ​ caractères minuscules +[:​lower:​] ​ caractères minuscules ​([a-z]) 
-[:​print:​] ​ caractères ​imprimable ​(tout sauf les caractères de contrôle)+[:​print:​] ​ caractères ​imprimables ​(tout sauf les caractères de contrôle)
 [:​punct:​] ​ caractères de ponctuation [:​punct:​] ​ caractères de ponctuation
 [:​space:​] ​ caractères d'​espacement [:​space:​] ​ caractères d'​espacement
-[:​upper:​] ​ caractères ​majuscule +[:​upper:​] ​ caractères ​majuscules ([A-Z]) 
-[:xdigit:] caractères ​hexadécimal+[:xdigit:] caractères ​hexadécimaux
 </​code>​ </​code>​
 +
 +
 +=====Cheat sheets=====
 +
 +{{ :​informatique:​regex.jpg |}}
  
  
 =====Exemples===== =====Exemples=====
  
-  * matcher ​tout sauf MOTIF (exclure le motif)+  * matcher ​chaque ligne qui ne contient pas le MOTIF (exclure le motif)
 <code bash> <code bash>
 ^((?​!MOTIF).)*$ ^((?​!MOTIF).)*$
 +
 +# alt : ne pas matcher les lignes qui commencent par MOTIF :
 +^(?​!MOTIF).*$
 </​code>​ </​code>​
 src stackoverflow : [[https://​stackoverflow.com/​questions/​406230/​regular-expression-to-match-a-line-that-doesnt-contain-a-word|Regular expression to match a line that doesn'​t contain a word]] src stackoverflow : [[https://​stackoverflow.com/​questions/​406230/​regular-expression-to-match-a-line-that-doesnt-contain-a-word|Regular expression to match a line that doesn'​t contain a word]]
informatique/regexp.1568018051.txt.gz · Last modified: 2019/09/09 10:34 by pteu