Maison > interface Web > js tutoriel > le corps du texte

Comment utiliser efficacement Regex en JavaScript pour la correspondance multiligne ?

Mary-Kate Olsen
Libérer: 2024-11-03 05:34:02
original
293 Les gens l'ont consulté

How to Effectively Use Regex in JavaScript for Multiline Matching?

Utilisation de Regex en JavaScript sur plusieurs lignes

En JavaScript, l'indicateur 'm', censé être conçu pour la correspondance multiligne, ne parvient pas à capturer le contenu s'étendant sur les nouvelles lignes. Pour résoudre ce problème, une solution plus robuste est nécessaire.

La clé est d'utiliser « [sS] » ou « [^] » comme point multiligne. Ces modèles correspondent à n'importe quel caractère, y compris les nouvelles lignes. Cette approche capture efficacement le contenu quelle que soit sa distribution sur plusieurs lignes.

Exemple :

var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
ddd"; var arr = ss.match( /
[\s\S]*?<\/pre>/gm );
console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
`
Copier après la connexion

Alternative moins cryptique :

Bien que la solution fournie soit efficace, une approche moins complexe peut être obtenue en remplaçant « [sS] » par « .* ? ». Ce quantificateur correspond à n'importe quel nombre de caractères (y compris les sauts de ligne) de manière non gourmande, ce qui permet une correspondance plus efficace et plus ciblée.

var arr = ss.match( /<pre class="brush:php;toolbar:false">.*?<\/pre>/gm );
console.log(arr); // Outputs: `<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
`
Copier après la connexion

Conseils :

  • Évitez une gourmandise excessive en utilisant des quantificateurs non gourmands comme « * ? » ou ' ?' dans la mesure du possible.
  • Les benchmarks indiquent que « [^] » offre des performances supérieures par rapport aux autres méthodes.
  • Bien que « [^] » soit obsolète, il reste une solution efficace dans les environnements plus anciens.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal