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 revisionPrevious revision
Next revisionBoth sides next revision
informatique:regexp [2013/10/14 20:44] – modification externe 127.0.0.1informatique:regexp [2015/10/23 12:47] – parenthèses non capturantes pteu
Line 7: Line 7:
 =====Syntaxe===== =====Syntaxe=====
  
-<code>+<code bash>
 []  définissent une liste de caractères []  définissent une liste de caractères
 ()  définissent un élément composé de l'expression régulière qu'elle contient (un bloc) ()  définissent un élément composé de l'expression régulière qu'elle contient (un bloc)
Line 21: Line 21:
     * Utilisé à l'intérieur d'une liste c'est un "non"     * Utilisé à l'intérieur d'une liste c'est un "non"
 $   Placé en fin d'expression il signifie "chaîne finissant par .. " $   Placé en fin d'expression il signifie "chaîne finissant par .. "
 +</code>
 +
 +Les parenthèses sont capturantes par défaut, ce qui veut dire que ce qu'elles matchent peut être récupéré ensuite dans des variables. Par exemple:
 +<code bash>
 +echo "je suis heureux" | sed 's/.* \([^ .]*\)/\1 je suis/'
 + heureux je suis
 +</code>
 +les parenthèses ''\(\)'' encadrent le motif qui matche le dernier mot de la phrase, que l'on récupère ensuite avec la variable ''\1'' (parce que c'est la première parenthèse capturante ; ça marche aussi avec  ''\2'', ''\3'', etc...
 +
 +Si on veut utiliser des parenthèses dans une regexp mais que l'on ne veux pas récupérer leur contenu, on gagne en performance en les déclarant non capturantes, en préfixant leur contenu par ''?:'' :
 +<code bash>
 +echo "je suis heureux" | sed 's/.* \(?:[^ .]*\)/\1 je suis/'
 </code> </code>
  
Line 27: Line 39:
  
 Ils se caractérisent pas la notation **[:classe:]** : Ils se caractérisent pas la notation **[:classe:]** :
-<code>+<code bash>
 [: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])
informatique/regexp.txt · Last modified: 2020/05/24 12:02 by pteu