Leçons du module (4/4)
Split avec regex
String.prototype.split(separator) accepte non seulement une chaîne fixe mais aussi une regex comme séparateur. Cela en fait un outil puissant pour découper (tokeniser) un texte structuré.
'uno, due,tre quattro'.split(/[,\s]+/);
// ["uno", "due", "tre", "quattro"]La regex /[,\s]+/ correspond à "une ou plusieurs virgules ou espaces blancs" : split effectue la séparation sur n'importe quel délimiteur composé.
Cas typiques
- CSV permissif :
text.split(/\s*,\s*/)pour gérer les espaces autour des virgules. - Tokeniseur simple :
text.split(/\s+/)pour extraire des mots. - Conserver le séparateur : si la regex contient des groupes de capture, le contenu des groupes est inclus dans le tableau de résultat.
'a=1; b=2; c=3'.split(/(;)\s*/);
// ["a=1", ";", "b=2", ";", "c=3"]Sans le groupe (), le point-virgule disparaîtrait. Avec (;) vous le conservez dans le résultat.
Préservation des séparateurs dans les opérations de split
Si vous placez les séparateurs de split à l'intérieur de parenthèses de capture, la sortie de String.prototype.split inclura les séparateurs eux-mêmes comme éléments dans le tableau final, au lieu de les rejeter.
À vous de jouer
Trouvez chaque séparateur CSV permissif : une virgule avec des espaces facultatifs autour. De cette façon, vous pourriez l'utiliser dans un split pour tokeniser la liste.
Afficher l'indice
Utilisez \s* avant et après la virgule pour absorber les espaces facultatifs.
Solution disponible après 3 tentatives
Exercice de révision
Trouvez chaque séparateur 'espaces ou points-virgules' (un ou plusieurs). De cette façon, split découpera le texte en mots.
Afficher l'indice
Combinez \s et ; dans une classe [\s;] avec le quantificateur +.
Solution disponible après 3 tentatives
Défi supplémentaire
Écrivez une regex à utiliser dans un split qui sépare les nombres tout en conservant les opérateurs mathématiques `+`, `-`, `*`, `/` comme éléments du tableau.
Afficher l'indice
Entourez la classe de caractères des opérateurs mathématiques de parenthèses de capture pour les conserver dans le tableau du split.
Solution disponible après 3 tentatives