Heim > Web-Frontend > js-Tutorial > Wie werden Regex-Instanzen außerhalb von Anführungszeichen abgeglichen, einschließlich maskierter Anführungszeichen?

Wie werden Regex-Instanzen außerhalb von Anführungszeichen abgeglichen, einschließlich maskierter Anführungszeichen?

Patricia Arquette
Freigeben: 2024-10-24 19:12:29
Original
730 Leute haben es durchsucht

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

Abgleichen von Regex-Instanzen außerhalb von Anführungszeichen

Während es im Allgemeinen schwierig ist, Regex-Instanzen abzugleichen, die nicht in Anführungszeichen eingeschlossen sind, gibt es tatsächlich eine mögliche Lösung.

Um dies zu erreichen, berücksichtigen wir die folgende Eigenschaft: Ein Wort steht außerhalb von Anführungszeichen, wenn danach eine gerade Anzahl von Anführungszeichen steht. Diese Eigenschaft kann mithilfe einer Look-Ahead-Behauptung erfasst werden:

\+(?=([^"]*"[^"]*")*[^"]*$)
Nach dem Login kopieren

Diese Behauptung berücksichtigt jedoch keine maskierten Anführungszeichen. Um damit umzugehen, ändern wir das Muster so, dass sowohl Zeichen als auch Backslashes berücksichtigt werden, während Backslash-Escape-Zeichen ignoriert werden:

\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)
Nach dem Login kopieren

Dieses komplexe Muster ermöglicht es uns, alle Instanzen des Zeichens „ “ zu identifizieren, die nicht in Anführungszeichen stehen. Dadurch werden sowohl doppelte Anführungszeichen als auch Escape-Sequenzen effektiv ausgeschlossen. Obwohl das Muster etwas kryptisch erscheinen mag, ermöglicht es uns, einen präzisen Abgleich außerhalb von Anführungszeichen durchzuführen.

Das obige ist der detaillierte Inhalt vonWie werden Regex-Instanzen außerhalb von Anführungszeichen abgeglichen, einschließlich maskierter Anführungszeichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage