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

Comment faire correspondre efficacement du texte multiligne avec des expressions régulières en JavaScript ?

Susan Sarandon
Libérer: 2024-10-30 04:09:02
original
619 Les gens l'ont consulté

How to Effectively Match Multiline Text with Regular Expressions in JavaScript?

Surmonter les pièges des expressions régulières multilignes en JavaScript

Lorsque vous essayez de faire correspondre un texte multiligne à l'aide d'expressions régulières en JavaScript, il est crucial de résoudre un piège courant. . L'indicateur 'm', destiné au mode multiligne, ne parvient étonnamment pas à gérer les nouvelles lignes dans le modèle. Pour extraire efficacement du texte sur plusieurs lignes, une approche alternative est nécessaire.

Solution : utiliser [sS] pour la correspondance multiligne

La solution réside dans l'utilisation de [sS] à la place du conventionnel. pour la correspondance multiligne. [sS] représente n'importe quel caractère, y compris les espaces et les nouvelles lignes, capturant efficacement le texte s'étendant sur plusieurs lignes. Ceci est illustré dans le code suivant :

<code class="js">var ss = "<pre class="brush:php;toolbar:false">aaaa\nbbb\nccc
ddd"; var arr = ss.match(//gm); alert(arr); // <pre class="brush:php;toolbar:false">...</u>pre> :)</code>
Copier après la connexion

Approches alternatives

Bien que l'utilisation de [sS] soit une solution fiable, il existe des approches alternatives qui méritent d'être envisagées. Certains développeurs recommandent d'utiliser [^], mais il est obsolète et peut ne pas être pris en charge dans tous les navigateurs. D'autres suggèrent d'employer (.|[rn]), mais il est nettement plus lent que [sS], comme le démontre le benchmark fourni :

Using [^]: fastest
Using [\s\S]: 0.83% slower
Using (.|\r|\n): 96% slower
Using (.|[\r\n]): 96% slower
Copier après la connexion

Évitement de la gourmandise

En plus d'utiliser [sS], il convient d'éviter la gourmandise en quantificateurs. Si nécessaire, employer  ? ou ? au lieu de ou , car cela peut avoir un impact significatif sur les performances.

En tirant parti de ces techniques, les développeurs peuvent surmonter le défi de la correspondance d'expressions régulières multilignes en JavaScript, garantissant ainsi une extraction précise et efficace du texte sur plusieurs lignes.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!