Expressions Rationnelle

Les expressions rationnelles (ou régulières) sont des critères ou modèles de recherche (pattern) dans les chaines de caractères. Les objectifs peuvent être simplement de sélectionner suivant ce critère, ou d'effectuer des traitements comme des subtitutions sur les chaines trouvées

Caractères de remplacement

  • . (point) représente un caractère qcq, sauf \n
  • \ annule le rôle de méta-caractère, pour jouer le rôle du caractère usuel
  • [...] l'un des caractères de l'ensemble.
  • [.-.] liste de caractères.
  • [^..] en début de crochets recherche dans le complémentaire de l'ensemble

Classes

  • [[:alpha:]] caractères alphabétiques
  • [[:alnum:]] caractères alphanumériques
  • [[:digit:]] caractères numériques
  • [[:lower:]] caractères alphabétique minuscules
  • [[:upper:]] caractères alphabétique majuscules
  • [[:space:]] espaces
  • [[:punct:]] caractères de ponctuation
  • [[:graph:]] caractères affichables
  • [[:cntrl:]] caractères de contrôle

Position

  • ^ recherche en début de ligne
  • $ recherche en fin de ligne

Répétition

  • + au moins une occurence de l'expression régulière
  • ? au plus une occurence de l'expression régulière
  • * zéro, une ou plusieurs occurences de l'expression régulière
  • {n,m} indique le nombre de répétitions attendus du caractère précédent

Groupement

  • (…) représente une séquence de caractères

Alternative

  • | joue le rôle de "ou" entre 2 expr rég.

Référence arrière

  • \n fait référence au caractère ou groupe en nième position

Utilisation des expressions régulières

Les "regexp" s'utilisent avec les commandes find, grep ou toute autre commande basé sur la reconnaissance de chaine de caractère

Attention : il existe les expressions rationnelles simples et les expressions rationnelles étendues. Dans la première les caractères spéciaux doivent être backslashée |+?{}().

exemple :

  • expression rationnelle simple : ^\(ab\?c\)\{3\}$
  • expression rationnelle étendue : ^(ab?c){3}$
ou
  • expression rationnelle simple : ^(){}$
  • expression rationnelle étendue : ^\(\)\{\}$

Documentation : http://www.ac-creteil.fr/reseaux/systemes/linux/shell-scripts/expr-regulieres.html

http://www.blaess.fr/christophe/publications/memo/index.html
Testeur http://quentinc.net/javascript/testeur-expressions-regulieres/
Modifié le: lundi 15 juillet 2013, 23:30