Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie kann man Regex-Instanzen außerhalb von Anführungszeichen zuordnen, auch mit maskierten Anführungszeichen?

Linda Hamilton
Freigeben: 2024-10-25 04:56:29
Original
430 Leute haben es durchsucht

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

Übereinstimmung von Regex-Instanzen außerhalb von Anführungszeichen: Ein alternativer Ansatz

In einer früheren Frage wurde vorgeschlagen, alle Instanzen eines Regex außerhalb von Anführungszeichen abzugleichen Zitate sind unmöglich. Dies ist jedoch nicht ganz korrekt.

Eine Lösung für dieses Problem besteht darin, zu erkennen, dass ein Wort außerhalb von Anführungszeichen steht, wenn ihm eine gerade Anzahl von Anführungszeichen folgt. Dies kann als Look-Ahead-Behauptung modelliert werden:

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

Dies berücksichtigt jedoch nicht maskierte Anführungszeichen. Um dies zu handhaben, wird der Ausdruck so geändert, dass das nächste Zeichen ignoriert wird, wenn vor einem Anführungszeichen ein Backslash auftritt:

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

Dieser komplexe Ausdruck stellt sicher, dass alle Instanzen eines regulären Ausdrucks, die nicht in Anführungszeichen stehen, abgeglichen werden, auch im Vorhandensein von maskierten Anführungszeichen.

Allgemeine Alternative für die Methoden .split() und .replace()

Diese Regex-Lösung funktioniert zwar gut, ist aber möglicherweise nicht für alle geeignet Fälle, insbesondere bei der Arbeit mit den Methoden .split() und .replace(). Ein alternativer Ansatz besteht darin, die folgenden Schritte zu verwenden:

  1. Teilen Sie die Zeichenfolge basierend auf Anführungszeichen in Segmente auf.
  2. Wenden Sie den regulären Ausdruck auf die Segmente an, die nicht in Anführungszeichen stehen.
  3. Fügen Sie die Segmente wieder zusammen und stellen Sie sicher, dass die Anführungszeichen richtig platziert sind.

Dieser Ansatz ist flexibler und kann in einem breiteren Spektrum von Szenarien verwendet werden.

Das obige ist der detaillierte Inhalt vonWie kann man Regex-Instanzen außerhalb von Anführungszeichen zuordnen, auch mit maskierten 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!