Erfassen von Quantifizierern und Quantifiziererarithmetik

Lassen Sie mich eingangs erklären, dass es in dieser Frage weder um das Erfassen von Gruppen noch um die Verwendung von Quantifizierern geht, zwei Eigenschaften von Regex, mit denen ich bestens vertraut bin. Es ist eher eine fortgeschrittene Frage für Regex-Liebhaber, die sich mit ungewöhnlicher Syntax in exotischen Engines auskennen.

Quantifizierer erfassen

Weiß jemand, ob eine Regex-Variante es Ihnen ermöglicht, Quantifizierer zu erfassen? Damit meine ich, dass die Anzahl der Zeichen, die mit Quantifizierern wie + und * übereinstimmen, gezählt wird und dass diese Anzahl in einem anderen Quantifizierer erneut verwendet werden kann.

Angenommen, Sie möchten sicherstellen, dass in dieser Art von Zeichenfolge die gleiche Anzahl von Ls und Rs vorhanden ist: LLLRRRRR

Sie können sich eine Syntax wie vorstellen

L(+)R{\q1}

wo der + Quantifizierer für das L erfasst wird und wo die erfasste Zahl im Quantifizierer für das R als {\ q1} bezeichnet wird

Dies wäre nützlich, um die Anzahl von {@, =, -, /} in Zeichenfolgen wie @@@@ "Star Wars" ==== "1977" ---- "Science Fiction" //// "auszugleichen. George Lucas "

Beziehung zur Rekursion

In einigen Fällen würde die Quantifikatorerfassung die Rekursion auf elegante Weise ersetzen, z. B. durch einen Textabschnitt, der von der gleichen Anzahl von Ls und Rs umrahmt wird

L(+) some_content R{\q1} 

Die Idee wird auf der folgenden Seite im Detail vorgestellt:Erfasste Quantifizierer

Es wird auch eine natürliche Erweiterung erfasster Quantifizierer erörtert: Quantifiziererarithmetik für Fälle, in denen Sie die Anzahl der zuvor übereinstimmenden Zeichen abgleichen möchten (3 * x + 1).

Ich versuche herauszufinden, ob so etwas existiert.

Vielen Dank im Voraus für Ihre Erkenntnisse !!!

Aktualisieren

Casimir gab eine fantastische Antwort, die zwei Methoden zeigt, um zu bestätigen, dass verschiedene Teile eines Musters die gleiche Länge haben. Allerdings möchte ich mich im Arbeitsalltag nicht auf beides verlassen. Das sind wirklich Tricks, die großartiges Show-Können demonstrieren. In meinen Augen bestätigen diese schönen, aber komplexen Methoden die Prämisse der Frage: Eine Regex-Funktion zum Erfassen der Anzahl der Zeichen, mit denen Quantifikatoren (wie z. B. + oder *) übereinstimmen können, würde solche Ausgleichsmuster sehr einfach machen und die Syntax erweitern eine angenehm ausdrucksstarke Art und Weise.

Update 2 (viel später)

Ich fand heraus, dass .NET eine Funktion hat, die meiner Frage sehr nahe kommt. Es wurde eine Antwort hinzugefügt, um die Funktion zu demonstrieren.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage