Passer au contenu principal
eLearner.app
Module 7 · Leçon 4 sur 428/32 dans le cours~10 min
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é.

JS
'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.
JS
'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

Exercice#regex.m7.l4.e1
Tentatives : 0Chargement…

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.

Chargement de l'éditeur…
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

Exercice#regex.m7.l4.e2
Tentatives : 0Chargement…

Trouvez chaque séparateur 'espaces ou points-virgules' (un ou plusieurs). De cette façon, split découpera le texte en mots.

Chargement de l'éditeur…
Afficher l'indice

Combinez \s et ; dans une classe [\s;] avec le quantificateur +.

Solution disponible après 3 tentatives

Défi supplémentaire

Exercice#regex.m7.l4.e3
Tentatives : 0Chargement…

É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.

Chargement de l'éditeur…
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