Ich bin also völlig neu in der überwältigenden Welt von Regex. Im Grunde verwende ich die Gedit-API, um eine neue benutzerdefinierte Sprachspezifikation (abgeleitet von C #) zur Syntax-Hervorhebung (für DM von Byond) zu erstellen. In maskierten Zeichen in DM müssen Sie [variable] als ausgehende Syntax verwenden, was einfach genug ist. Es könnte jedoch auch verschachtelt sein, beispielsweise [array / list [index]] . (Es könnte unendlich verschachtelt werden.) Ich habe die anderen Fragen durchgesehen, und wenn sie nach verschachtelten Klammern fragen, meinen sie nur verschachtelt, während es in diesem Fall entweder / oder sein könnte.
Mehrere Versuche, die ich versucht habe:
\[.*\]
erzeugt das Ergebnis "Test [Test [Test] Test] Test [Test] Test" \[.*?\]
erzeugt das Ergebnis "Test [Test [Test] Test] Test [Test] Test" \[(?:.*)\]
erzeugt das Ergebnis "Test [Test [Test] Test] Test [Test] Test" \[(?:(?!\[|\]).)*\]
erzeugt das Ergebnis "Test [Test [Test] Test] Test [Test ] Test ". Dies ergibt sich aus Ссылка , aber wie oben erwähnt, stimmt das nur überein, wenn keine Klammern darin enthalten sind. Offensichtlich habe ich keine wirkliche Idee, was ich hier in komplexerer Übereinstimmung mache, aber zumindest verstehe ich mehr grundlegende Operationen aus anderen Quellen.
Aus @ Chaos7Theory :
Beim Lesen von GtkSourceViews Referenz zur Spezifikation habe ich herausgefunden, dass es speziell für PCRE verwendet wird. Das habe ich dann als Lead benutzt.
Ich habe es durch Trial-and-Error untersucht und mit ihm gearbeitet:
%Vor%Ich hoffe, das hilft jemandem in der Zukunft.