Algorithmus zum Erstellen der n-ten Ebene von verschachtelten Mustern in RegEx

Wie in erklärtKönnen mit regulären Ausdrücken verschachtelte Muster verglichen werden?kann kein regulärer Ausdruck erstellt werden, der mit einem beliebigen verschachtelten Muster übereinstimmt. Aber ist es möglich, einen Algorithmus zu erstellen, der einen regulären Ausdruck der n-ten Ebene der "Nesteness" erzeugt?

Grundsätzlich möchte ich ersetzentrim(whatever) mitrtrim(ltrim(whatever))

Ich habe es geschafft, 3 Ebenen von Hand zu erstellen (Javascript-Syntax):

<code>level[1] = /\(([^()]*)\)/g
level[2] = /\(((?:[^()]*\([^()]*\))*[^()]*)\)/g
level[3] = /\(((?:(?:(?:[^()]*\([^()]*\))*[^()]*)*\((?:(?:[^()]*\([^()]*\))*[^()]*)*\))*[^()]*)\)/g
</code>

Hier sind einige Testdaten:

<code>1st(ddd) + 1st(ddd)
2nd(dd(d))
3rd(a(b) + (cd(h) + d(dfas) + zzz))
4th(a(b(c(d))))
8th(a(b(c(d(e(f(g()))))))
</code>

Ich weiß das auf jeder Ebene[^()]* muss durch eine nicht erfassende Gruppe ersetzt werden, die Klammern enthalten kann, aber ich weiß nicht, wieVerallgemeinern Sie den Algorithmus für die n-te Ebene...

Antworten auf die Frage(1)

Ihre Antwort auf die Frage