Maison > interface Web > js tutoriel > Comment puis-je conserver les délimiteurs lors du fractionnement de chaînes en JavaScript à l'aide d'expressions régulières ?

Comment puis-je conserver les délimiteurs lors du fractionnement de chaînes en JavaScript à l'aide d'expressions régulières ?

DDD
Libérer: 2024-11-28 16:31:20
original
485 Les gens l'ont consulté

How Can I Preserve Delimiters When Splitting Strings in JavaScript Using Regular Expressions?

Préserver les délimiteurs lors du fractionnement de chaînes en JavaScript avec RegExp

Le fractionnement d'une chaîne en segments à l'aide d'expressions régulières (RegExp) est une tâche courante en JavaScript . Cependant, il est parfois souhaitable de conserver les délimiteurs utilisés pour le fractionnement.

Considérez la chaîne suivante :

aaaaaa<br />&dagger; bbbb<br />&Dagger; cccc
Copier après la connexion

Supposons que vous souhaitiez diviser cette chaîne au niveau
délimiteur, suivi d'un caractère spécial († ou ‡). La RegExp suivante peut être utilisée :

string.split(/<br \/>&amp;#?[a-zA-Z0-9]+;/g);
Copier après la connexion

Pendant que cette RegExp accomplit la tâche de fractionnement, elle supprime le
délimiteur. Cela peut être indésirable dans certains scénarios.

Pour conserver les délimiteurs, diverses options peuvent être utilisées, comme illustré ci-dessous :

string.split(/(<br \/>&amp;#?[a-zA-Z0-9]+;)/g);
Copier après la connexion

En mettant le délimiteur entre parenthèses, les délimiteurs sont capturés comme séparer les éléments dans le tableau résultant.

Une autre approche consiste à utiliser une anticipation positive assertion :

string.split(/(?=<br \/>&amp;#?[a-zA-Z0-9]+;)/g);
Copier après la connexion

Cette assertion correspond à la position immédiatement avant le délimiteur sans réellement consommer le délimiteur.

Alternativement, une assertion négative de type lookbehind peut être utilisée :

string.split(/(?!<br \/>&amp;#?[a-zA-Z0-9]+;)/g);
Copier après la connexion

Cette assertion correspond à la position immédiatement après le délimiteur sans la consommer.

De plus, un régulier expression peut être utilisée pour capturer la partie de la chaîne avant le délimiteur :

string.split(/(.*?<br \/>&amp;#?[a-zA-Z0-9]+;)/g);
Copier après la connexion

Cela capture tout jusqu'au délimiteur.

Lorsqu'il s'agit de chemins, une considération particulière est nécessaire pour préserver Barres obliques de répertoire :

var str = 'Animation/rawr/javascript.js';
var tokens = str.match(/[^\/]+\/?|\//g);
Copier après la connexion

Cette RegExp garantit que les barres obliques suivant les répertoires sont également capturées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal