JavaScript:
Utilisation des expressions régulières
Comment faire :
Correspondance de base
Pour commencer, vous pouvez créer un motif regex simple et l’utiliser pour trouver des correspondances dans une chaîne de caractères. Ici, nous trouverons le mot “code” :
const str = "I love to code in JavaScript.";
const pattern = /code/;
const result = pattern.test(str);
console.log(result); // true
Utiliser String.prototype.match()
Pour récupérer un tableau de correspondances :
const matches = str.match(/code/);
console.log(matches[0]); // "code"
console.log(matches.index); // 10
Recherche globale
Pour trouver toutes les correspondances, utilisez le drapeau g :
const globalMatches = str.match(/o/g);
console.log(globalMatches); // ["o", "o", "o"]
Correspondance sans tenir compte de la casse
Le drapeau i ignore la casse :
const caseInsensitiveMatch = "JavaScript is fun".match(/javascript/i);
console.log(caseInsensitiveMatch[0]); // "JavaScript"
Remplacer du texte
Utilisez String.prototype.replace() pour remplacer des parties de la chaîne :
const newStr = "JavaScript is fun".replace(/fun/, "awesome");
console.log(newStr); // "JavaScript is awesome"
Utilisation de groupes
Les groupes peuvent capturer des parties du motif :
const groupedPattern = /(\w+) is (\w+)/;
const replaceWithGroups = "JavaScript is fun".replace(groupedPattern, "$2 is $1");
console.log(replaceWithGroups); // "fun is JavaScript"
Bibliothèques tierces
Bien que les capacités regex intégrées de JavaScript soient puissantes, certaines tâches pourraient être simplifiées avec des bibliothèques comme XRegExp. Elle offre une syntaxe et des drapeaux supplémentaires, rendant les motifs complexes plus lisibles :
// Exemple de la bibliothèque XRegExp
const XRegExp = require('xregexp');
const str = "Cats are fantastic.";
const unicodeWordMatch = XRegExp.match(str, XRegExp('\\p{L}+'), 'all');
console.log(unicodeWordMatch); // ["Cats", "are", "fantastic"]
Cet extrait démontre l’utilisation de XRegExp pour correspondre à tous les mots Unicode dans une chaîne de caractères, montrant la capacité de la bibliothèque à gérer des ensembles de caractères étendus au-delà des capacités intégrées de JavaScript.