Maison  >  Article  >  interface Web  >  Comment faire correspondre efficacement du texte multiligne avec des expressions régulières en JavaScript ?

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

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 04:09:02620parcourir

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>

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

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

Déclaration:
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