RegEx

Histoire d’avoir un mémo quelque part :

  • En Javascript le début et la fin d’expression de recherche se définit avec un / (slash)
  • Caractère d’échappement : \ (anti-slash)
  • Pour ignorer la casse : utiliser i après la RegEx (ou en option de recherche)
  • Pour répéter plusieurs fois : utiliser g après la RegEx
  • Choix multiple : séparer les items par un | (pipe)
  • Début de chaîne : ^
  • Fin de chaîne : $
  • Liste de caractères : [<liste des caractères>] (ex: [aeiouy])
  • Intervalle de caractères : [<premier caractère>-<dernier caractère>] (exemple : [a-z])
  • Pour exclure des caractères il suffit d’ajouter un ^ au début de la liste ou de l’intervalle
  • On peut combiner intervalles et listes
  • Inutile d’échapper au sein d’une liste ou d’un intervalle, ou d’une combinaison, sauf pour les / (slash) et \ (anti-slash)
  • Caractère quelconque : . (point)
  • Quantificateurs, à placer après un élément recherché (peu importe lequel) :
    • 0 ou 1 fois : ? (ex : https?)
    • 1 ou plusieurs fois : +
    • 0, 1 ou plusieurs fois : *
    • n fois : {n}
    • n à m fois : {n,m}
    • n fois à l’infini : {n,} (noter la virgule seule)
  • Pour les quantificateurs potentiellement supérieurs à 1 (+, *, …) rajouter un ? (greedy) permet de s’arrêter au premier élément correspondant, au lieu du dernier, ex : /<a href=”(.+?)”>/ .
  • Types génériques :
    • \d : Caractère décimal
    • \D : Tout sauf un caractère décimal
    • \s : Espace, tabulation, … (inclut aussi les retours à la ligne)
    • \S : Tout sauf une espace, tabulation, …
    • \w : Lettre, accentuée ou pas, et _ (underscore)
    • \W : Tout sauf une lettre, accentuée ou pas ou un underscore
    • \n : Retour à la ligne
    • \t : Tabulation
    • \b : Limite de mot (un caractère accentué en est une)
    • \B : Tout sauf une limite de mot
  • Captures :
    • (<élément à trouver>) : retourne l’élément (si trouvé) dans $n (n valant de 1 à 9 en fonction de la position de la capture)
    • Pour ne rien retourner, utiliser (?:<élément à trouver>), permet « d’économiser » des positions de capture (limitées à 9)
  • Dans une chaîne de remplacement le $ doit être doublé pour être traité de manière littérale.

Ajouter un commentaire

Comments can be formatted using the Markdown Extra syntax.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/12525

Haut de page