Maison  >  Article  >  interface Web  >  Comment faire correspondre les instances Regex en dehors des devis, y compris les devis échappés ?

Comment faire correspondre les instances Regex en dehors des devis, y compris les devis échappés ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 19:12:29640parcourir

How to Match Regex Instances Outside of Quotes, Including Escaped Quotes?

Faire correspondre les instances de regex en dehors des guillemets

Bien qu'il soit généralement difficile de faire correspondre les instances de regex qui ne sont pas placées entre guillemets, il existe en effet un solution possible.

Pour y parvenir, on considère la propriété suivante : un mot est hors guillemets s'il y a un nombre pair de guillemets après lui. Cette propriété peut être capturée à l'aide d'une assertion d'anticipation :

\+(?=([^"]*"[^"]*")*[^"]*$)

Cependant, cette assertion ne prend pas en compte les guillemets échappés. Pour les gérer, nous modifions le modèle pour prendre en compte à la fois les caractères et les barres obliques inverses tout en ignorant les caractères échappés par des barres obliques inverses :

\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)

Ce modèle complexe nous permet d'identifier toutes les instances du caractère ' " qui ne sont pas entre guillemets, excluant efficacement les séquences entre guillemets doubles et celles échappées. Bien que le modèle puisse paraître quelque peu énigmatique, il nous permet d'effectuer une correspondance précise en dehors des guillemets.

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