Les expressions régulières, ou regex, sont des “patterns” qui permettent de rechercher des mots ayant certaines propriétés. Voici quelques exemples d’expressions régulières:

  • ion : recherche les mots qui contiennent la chaine “ion”, dans n’importe quelle position
  • p.t : recherche les mots qui contiennent un “p”, suivi d’une lettre quelconque, puis d’un “t” (le point correspond à n’importe quel caractère)
  • ion$ : mots se terminant par “ion” ($=fin de mot)
  • ^anti : recherche tous les mots commençant par “anti” (^=début de mot)
  • ^maison$ : recherche exactement le mot “maison”
  • oid|ion|ein : recherche les mots qui contiennent (au moins) une des trois chaînes “iod”, “ion” ou “ein” (| = ou). Par exemple, vous pouvez rechercher des mots qui _contiennent_ chien, chat ou lapin avec la regex chien|chat|lapin
  • ^(jour|nuit|matin|soir)$ : exactement les quatre mots “jour” ou “nuit” ou “matin” ou “soir” (permet de rechercher une liste de mots)
  • ^p…r$ : mots commençant par “p”, suivi de trois lettres quelconques, et finissant par “r” (le symbole . dans une regex correspond à n’importe quel caractère)
  • ^p.*r$ : mots commençant par “p” et finissant par “r” (*= répétitions – 0 ou plusieurs fois – du caractère précédent, ici ‘.’, donc n’importe quel caractère)
  • [aeiou][aeiou] : mots contenant (au moins) 2 voyelles successives ([] = classe de caractères: [abc] signifie la même chose que (a|b|c))
  • [ptkbdg][ptkbdg] : mot contenant un cluster de consonnes formé de plosives (recherche dans le champ phon)
  • ^[aeiou] : mots commençant par une voyelle
  • ^[aeiou]+$: mots ne contenant que des voyelles
  • ^[^aeriou] : mots ne commençant pas par une voyelle

Il existe beaucoup de tutoriaux sur les regex sur le web, notamment cette page ou cette video. Le cours suivant est également recommandé: http://regextutorials.com/intro.html

La bible sur les regex est le livre Maitriser les expressions régulières

Une regex décrit un automate de transition à états finis. Le site https://regexper.com/ vous permet de visualiser l’automate associé à votre regex. Par exemple:

[ptk].*[aiou][aiou].?ion$ correspond à l’automate fini: