Ich muss die gesamte folgende Anweisung abgleichen:
%Vor% Grundsätzlich, wenn es ein {
gibt, muss ein entsprechendes }
vorhanden sein, aber viele eingebettete { }
sind innerhalb des ursprünglichen Tags. Also zum Beispiel {{match}}
oder {{ma{{tch}}}}
oder {{m{{a{{t}}c}}h}}
.
Ich habe das gerade jetzt:
%Vor%Das funktioniert nicht ganz.
Ich schlage vor, einen einfachen Parser / Tokenizer dafür zu schreiben.
Grundsätzlich durchlaufen Sie alle Zeichen und beginnen Instanzen von {
und }
zu zählen - inkrementieren für {
und dekrementieren für }
. Zeichnen Sie den Index jedes ersten {
und den Index jedes letzten }
auf und Sie erhalten die Indizes für Ihre eingebetteten Ausdrücke.
An dieser Stelle können Sie substring
verwenden, um diese zu erhalten und sie aus der ursprünglichen Zeichenfolge zu entfernen / ersetzen.
Siehe diese Fragen und Antworten für warum RegEx ist nicht geeignet.