Déchiffrement d’une expression régulière avec répétitions imbriquées

PHP Hard regex

Tâche «Déchiffrement d’une expression régulière avec répétitions imbriquées»

Soit une chaîne contenant une expression régulière encodée dans un format spécial : des lettres de l’alphabet latin (a-z) et des chiffres (2-9) entre parenthèses, indiquant le nombre de répétitions du caractère ou du groupe précédent. Les parenthèses imbriquées sont autorisées. Il faut développer toutes les répétitions et afficher l’expression régulière résultante en notation standard (sans parenthèses avec un nombre, uniquement des caractères et des quantificateurs {n}). Par exemple, 'a3' devient 'a{3}', '(ab)2' devient '(ab){2}', et '((a2)2b)2' devient '((a{2}){2}b){2}'. Il est garanti que la chaîne d’entrée est correcte, sa longueur ne dépasse pas 1000 caractères, et la profondeur d’imbrication ne dépasse pas 10.

Format d\ entrée

Une seule chaîne S (1 ≤ |S| ≤ 1000), composée de lettres latines minuscules, de chiffres 2-9 et de parenthèses.

Format de sortie

Une seule chaîne — l’expression régulière développée en notation standard.

Exemples

Exemple 1

ENTRÉE
a3
SORTIE
a{3}

Exemple 2

ENTRÉE
0 0 4 0 0 3
SORTIE
{4} {3}

Exemple 3

ENTRÉE
0
SORTIE

Exemple 4

ENTRÉE
(ab)2
SORTIE
(ab){2}

Exemple 5

ENTRÉE
1 1 4 5 7 1
SORTIE
{4} {5} {7}
main.php