Rechercher dans ce blog

mercredi 19 novembre 2014

Petit rappel sur les expressions régulières

Bonjour !

Avant de poursuivre la construction de notre tableau HTML dans le cadre du projet, voici un petit rappel sur ce que sont les expressions régulières et leur fonctionnement. En effet, il est essentiel de bien comprendre les expressions régulières dans le cadre de notre cursus et surtout pour plus tard, car nous en aurons besoin dans n'importe quel domaine du TAL.

Les expressions régulières permettent de chercher toutes les chaînes de caractères correspondant à un motif donné selon une syntaxe précise.

Il existe différents opérateurs tels :

Les opérateurs d'ensembles de caractères

  • [aeiouy] : ici, on demande à retrouver un caractère de cet ensemble, c'est-à-dire une voyelle.
  • [A-Z] : le tiret permet de décrire un intervalle de caractères (les caractères compris entre A et Z). Le tiret n'est pas reconnu comme un élément de cet ensemble.
  • [^A-Z] : le circonflexe permet de dire que l'on ne veut pas d'élément de cet ensemble (négation), a serait reconnu car ce caractère est en minuscule mais A en majuscule ne le serait pas. 
  • | : le pipe permet l'alternative, par exemple : clé | clef, on veut reconnaître les chaînes de caractères clé ou clef, mais pas é ou c car la concaténation est prioritaire sur l'optionnalité.
Les opérateurs de répétition 

  • ? : le point d'interrogation permet de dire que le caractère qui précède est soit présent soit absent. Par exemple, arbres? : on cherche soit arbre (au singulier) soit arbres (au pluriel). Autre exemple, abc(dy)? : cette fois, le ? concerne toute la parenthèse car cette dernière permet de regrouper des caractères. 
  • * : présence 0 fois ou autant que l'on veut du caractère qui précède. Exemple, lo*ng qui nous permet de trouver long, long, loong, looong, etc. 
  • + : 1 occurrence ou plusieurs du caractère qui précède. Exemple, lo+ng ce qui donne long, loong, looong mais pas lng. 
Les quantificateurs

  • {} : les accolades permettent de spécifier de manière plus précise le nombre des caractères recherchés. Exemple, arbre{1,3} : le e apparait au minimum 1 fois et au maximum 3 fois. Autre exemple, arbre{4,} : le e apparaît 4 fois minimum mais on n'a pas de borne supérieure. 
  • . : le point remplace n'importe quel caractère (sauf le retour à la ligne).
  • ^ : le circonflexe a une autre signification que précédemment, ici il désigne un caractère en début de chaîne.
  • $ : c'est l'inverse, soit un caractère en fin de chaîne. 
  • Pour chercher les lignes vides, on aura donc : ^$ (mais on n'aura rien en sortie).
  • \w : représente des caractères de mots.
  • \w+ : pour trouver tous les mots de l'anglais par exemple. Le français comporte des caractères accentués. Si on est dans un environnement en utf-8, cette regexp fonctionne aussi pour le français. Ce n'est pas forcément le cas dans tous les environnements. 
  • \b : frontière de mot. Par exemple, ing\b : recherche tous les mots se terminant par ing. 
  • \W : on recherche quelque chose qui n'est pas un caractère de mot.
  • \B : on recherche quelque chose qui n'est pas à la frontière d'un mot (donc à l'intérieur). 
Parenthésage et niveau de priorité (dans l'ordre du plus prioritaire au moins prioritaire)

fermeture > concaténation > union
Les parenthèses permettent de savoir comment sont regroupés les éléments de l'expression. 

Remarque : l'antislash va permettre de rendre leur statut de caractère aux opérateurs afin qu'ils soient traités comme des caractères normaux. 

Ces quelques éléments très utiles pour comprendre les expressions régulières ont été présentés en cours, mais ils ne représentent qu'une petite partie des opérateurs disponibles. Il n'est bien sûr pas possible d'en dresser la liste exhaustive ici mais nous les découvrirons au fur et à mesure de l'avancée du projet ainsi que dans les différents domaines de notre cursus.

A bientôt pour la suite du projet !





Aucun commentaire:

Enregistrer un commentaire