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

Comment faire correspondre les instances Regex en dehors des guillemets, même avec des guillemets échappés ?

Linda Hamilton
Libérer: 2024-10-25 04:56:29
original
430 Les gens l'ont consulté

How to Match Regex Instances Outside of Quotes, Even with Escaped Quotes?

Correspondance des instances de regex en dehors des citations : une approche alternative

Dans une question précédente, il a été suggéré de faire correspondre toutes les instances d'une regex en dehors de les citations sont impossibles. Cependant, ce n'est pas tout à fait exact.

Une solution à ce problème consiste à reconnaître qu'un mot est hors guillemets s'il est suivi d'un nombre pair de guillemets. Cela peut être modélisé comme une assertion prospective :

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

Cependant, cela ne tient pas compte des guillemets échappés. Pour gérer cela, l'expression est modifiée pour ignorer le caractère suivant si une barre oblique inverse est rencontrée avant un guillemet :

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

Cette expression complexe garantit que toutes les instances d'une expression régulière qui ne sont pas entre guillemets correspondent, même dans le présence de guillemets échappés.

Alternative généralisée pour les méthodes .split() et .replace()

Bien que cette solution regex fonctionne bien, elle peut ne pas convenir à tous cas, en particulier lorsque vous travaillez avec les méthodes .split() et .replace(). Une approche alternative consiste à utiliser les étapes suivantes :

  1. Divisez la chaîne en segments en fonction des guillemets.
  2. Appliquez l'expression régulière aux segments qui ne sont pas entre guillemets.
  3. Regroupez les segments en vous assurant que les citations sont correctement placées.

Cette approche est plus flexible et peut être utilisée dans un plus large éventail de scénarios.

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!