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

Comment faire correspondre les instances Regex en dehors des guillemets en JavaScript : un guide complet

Mary-Kate Olsen
Libérer: 2024-10-25 07:04:29
original
894 Les gens l'ont consulté

How to Match Regex Instances Outside Quotes in JavaScript: A Comprehensive Guide

Correspondance des instances non entourées de guillemets

Dans une question précédente, il a été suggéré de faire correspondre toutes les occurrences d'une expression régulière tout en excluant le texte entre guillemets n'est pas réalisable. Cependant, cette limitation peut être surmontée à l'aide d'une regex complexe mais efficace.

La clé de cette regex est d'observer qu'une sous-chaîne est en dehors des guillemets si un nombre pair de guillemets la précède. Cela peut être représenté par l'assertion d'anticipation suivante :

(?=([^"]*"[^"]*")*[^"]*$)
Copier après la connexion

Cette assertion garantit que le texte précédent contient un nombre pair de guillemets suivis de la sous-chaîne actuelle.

Pour exclure les guillemets échappés , nous devons également prendre en compte les barres obliques inverses. L'expression régulière devient légèrement plus complexe :

\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)
Copier après la connexion

Cette expression régulière avance d'abord au-delà de tous les caractères autres que les guillemets (S). Lorsqu'il rencontre une barre oblique inverse ou une citation, soit il ignore le caractère suivant (s'il s'agit d'une barre oblique inverse), soit il passe à la citation suivante non échappée.

Bien que cette expression régulière soit quelque peu complexe, elle correspond effectivement à toutes les instances. de l'expression régulière non entourée de guillemets, permettant d'obtenir le résultat souhaité dans les méthodes split() et replace() de JavaScript.

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