Académique Documents
Professionnel Documents
Culture Documents
en JavaScript
Philippe Genoud
Philippe.Genoud@univ-grenoble-alpes.fr
let str = "<p>La provenance de monDoc.pdf est www.myorganisation.org, celle de monImage1.png est monsite.amoi.fr</p>";
recherche toutes les occurrences (flag g) recherche la première occurrence (pas de flag g) aucun match null
retourne un tableau avec toutes les retourne un tableau avec une seule entrée (le null n'est pas un tableau vide, écrire
correspondances 1er match) et des propriétés détaillant celui-ci result.length provoquerait une erreur
pour avoir un tableau vide
result = str2.match(/[dy]ear/ig) || [];
* voir slide 11
dernière modification 25/11/2021 © Philippe GENOUD - Université Grenoble Alpes 5
Recherche avec une expression régulière
let str = `"The fear is near with Bear. Watch your rear, you don't want to shed a tear" - Snoop Bear`;
let str1 = str.replace(/[fnrt]ear/gi, "..."); replace ne modifie pas la chaîne sur laquelle elle est appliquée. Si
on veut modifier celle-ci, il faut lui affecter le résultat.
----> "\"The ... is ... with Bear. Watch your ..., you don't want to shed a ...\" - Snoop Bear"
possibilité d'utiliser des caractères spéciaux dans la chaîne de substitution pour éventuellement insérer des fragments du match
str1 = str.replace(/[bf]ear/gi, "big $&");
----> "\"The big fear is near with big Bear. Watch your rear, you don't want to shed a tear\" - Snoop big Bear"
$$ insère un $
...
----> "\"The \"The big fear is near with \"The fear is near with big Bear. Watch your rear, you don't want to shed a
tear\" - Snoop \"The fear is near with Bear. Watch your rear, you don't want to shed a tear\" - Snoop big Bear"
let str = `"The fear is near with Bear. Watch your rear, you don't want to shed a tear" - Snoop Bear`;
let regExp = null;
regExp = /[bt]ear/i;
regExp.test(str)
----> true
"\"The fear is near with Bear. Watch your rear, you don't want to shed a tear\" - Snoop Bear"
regExp = /[by]ear/i;
regExp.test(str) ----> false
• des caractères spéciaux (échappés par \ (antislash)) permettent de désigner des classes prédéfinies
• \n Caractère de retour ligne (sur certains systèmes 2 caractères \f form feed, \r carriage return)
• \t Caractère de tabulation
• \d Caractère numérique (équivaut à [0-9])
• \D Caractère non numérique (équivaut à [^0-9])
• \w Caractère de mot (alphanumérique) (équivaut à # [0-9a-zA-Z_]) let str2 = "Dans ce bouquet il y a 3 roses et 8 marguerites, il coute 8€.";
• \W Caractère de non mot (équivaut à [ˆ\w]) retrouver tous les chiffres qui ne correspondent pas à un prix
• \s Espace (équivaut à [ \t\n\r\f]) let result2 = str2.match(/\s\d\s/g);
• \S Non espace (équivaut à [ˆ\s])
• . N'importe quel caractère autre qu'un retour à la ligne
• {n,m} l'expression qui précède doit apparaître au moins n fois et au plus m fois regex.test("Very very gooooood !")
----> false
iterator = str.matchAll(/\b\w+\.(\w+)\.([a-z]{2,3})\b/gi)
groupe 1 groupe 2
iterator.next() iterator.next()