Expressions Rationnelles

Les expressions rationnelles (ou régulières qui est un anglicisme) 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.

Happli Kickers Kickers Bottines Bottines Happli Kickers Kickers Classiques Bottines Femme Happli Classiques Femme Femme Classiques Happli Ces expressions sont utilisées dans certains langages de scripting ou de programmation tels que perl ou java. Elles sont aussi utilisées en paramètres de commandes telles que grep, sed, awk ou dans un éditeur tel que vi.

La syntaxe peut varier selon l'une ou l'autre des utilisations, mais une fois le principe compris, elles deviennent très utiles et puissantes.
On connaît trois syntaxes principales, POSIX "basic" ou BRE, "extended" ou ERE et enfin perl ou PRCE (voir man bash et HiTime Winter Bottes Femme 36 5 White Blanc Motard HHXwr).

Pattern

Leur utilisation passe par la définition d'un pattern qui est une chaîne de caractères qui définit le "motif" de ce qui est recherché. Cette chaîne peut contenir des caractères qui sont utilisés comme tels ainsi que des modificateurs qui agissent sur les caractères.

Caractères de remplacement

  • . (point) représente un caractère qcq, sauf \n
  • [abc] l'un des caractères de l'ensemble.
  • [a-z] liste de caractères.
  • Classiques Happli Bottines Femme Classiques Kickers Femme Kickers Happli Bottines Kickers Femme Happli Bottines Classiques Happli Kickers [^abc] en début de crochets recherche dans le complémentaire de l'ensemble (tout sauf abc)

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
  • Bottines Bottines Classiques Happli Femme Kickers Kickers Happli Happli Femme Classiques Classiques Femme Bottines Kickers Kickers Happli [[:space:]] espaces
  • [[:punct:]] caractères de ponctuation
  • [[:graph:]] caractères affichables
  • [[:cntrl:]] caractères de contrôle

Position

  • ^ recherche en début de ligne
  • Kickers Classiques Happli Femme Kickers Bottines Femme Happli Classiques Bottines Happli Kickers Bottines Happli Classiques Femme Kickers Classiques Kickers Happli Femme Classiques Kickers Happli Classiques Happli Bottines Kickers Femme Kickers Bottines Bottines Femme Happli $ recherche en fin de ligne
  • < début d'un mot
  • > fin d'un mot
  • \b début ou fin d'un mot

Répétition

  • Classiques Kickers Kickers Classiques Kickers Bottines Femme Bottines Happli Femme Happli Classiques Happli Femme Kickers Bottines Happli + au moins une occurence de l'expression régulière
  • ? optionnel / 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

Kickers Happli Happli Femme Bottines Bottines Kickers Femme Bottines Happli Classiques Kickers Classiques Kickers Classiques Femme Happli Groupement

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

Raccourcis

  • \d représente un chiffre (digit)
  • \D un caractère non chiffre
  • \s n'importe quel type d'espace
  • \S n'importe quel caractère non espace
  • \w un caractère alphanuérique
  • \W un caractère non alphanumérique

Utilisation des expressions régulières

Attention :   - il existe les expressions rationnelles simples et les expressions rationnelles étendues. Dans la première les caractères spéciaux doivent être protégés par un "backslash" (\) |+?{}().
                  - si vous tapez une commande dans le shell, il faut protéger les caractères que le shell va interprêter. Souvenez-vous que le shell remplace ses caractères spéciaux puis appelle la commande... 

Exemples:

grep -c  "^$" messages anaconda.log                                                 retourne le nombre (-c) de lignes vides du fichier "anaconda.log"
ls –al | grep “^d”                                                                              liste tous les sous-répertoires du répertoire courant
ls –al | grep ‘.\{7\}rw’                                                                       liste les fichiers qui ont "rw" pour "other"
Kickers Kickers Bottines Classiques Kickers Happli Happli Bottines Classiques Bottines Classiques Happli Femme Femme Happli Femme Kickers ^M{0,4}(CM|CDKickers Classiques Kickers Femme Happli Femme Classiques Femme Kickers Happli Bottines Happli Bottines Happli Kickers Bottines Classiques |DKickers Bottines Classiques Bottines Femme Classiques Femme Bottines Kickers Classiques Femme Happli Kickers Kickers Happli Happli Happli ?C{0,3})(XC|XL|L?X{0,3})(IXClassiques Happli Kickers Bottines Femme Happli Femme Kickers Happli Happli Bottines Kickers Classiques Bottines Kickers Femme Classiques |IV|V?I{0,3Kickers Happli Femme Kickers Femme Bottines Bottines Classiques Kickers Kickers Bottines Femme Classiques Classiques Happli Happli Happli })$          pour valider un nombre en chiffres romains

Et enfin ... juste pour rigoler

Talon GTVERNH Forme Bruts Des Imperm 11Cm La Bottes Plate qIIwpF

C'est un extrait d'une expression créée pour valider une adresse mail et ça ne marche même pas dans tous les cas !

Documentation : EU Femme HiTime Plateforme 5 Noir Noir 36 U5pYBpqH
http://ferry.eof.eu.org/lesjournaux/jar/public_html/x1223.html
Testeur
Cheat sheet Une des multiples feuilles de référence sur les expressions
Modifié le: Tuesday 25 March 2014, 15:00