Algorytm tworzenia n-tego poziomu zagnieżdżonych wzorów w RegEx

Jak wyjaśniono wCzy można używać wyrażeń regularnych do dopasowania zagnieżdżonych wzorów?, nie jest możliwe utworzenie wyrażenia regularnego w celu dopasowania do dowolnego zagnieżdżonego wzorca. Ale czy możliwe jest stworzenie algorytmu, który wygenerowałby regex n-tego poziomu „nesteness”?

w zasadzie chcę zastąpićtrim(whatever) zrtrim(ltrim(whatever))

udało mi się ręcznie utworzyć 3 poziomy (składnia javascript):

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

oto kilka danych testowych:

<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>

wiem to na każdym poziomie[^()]* musi zostać zastąpiony przez grupę nieprzechwytującą, która może zawierać nawiasy, ale nie wiem, jak to zrobićuogólnij algorytm dla n-tego poziomu...

questionAnswers(1)

yourAnswerToTheQuestion