Regex de Python: paréntesis anidados coincidentes [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Se pueden usar expresiones regulares para unir patrones anidados? [duplicar 11 respuestassupongo que tengo una cadena que contiene subcadenas
# the substrings and the whole string surrounded by parenthesis
string = '((substring1)(substring2))'
Quiero obtener la subcadena1 y la subcadena2 usando expresiones regulares, pero tengo un problema:
Esto es lo que tengo ahora:
match = re.search('(\(.*\))', string)
print match.groups()
El problema es que el resultado muestra:
('(substring1)(substring2)', )
Parece que la expresión regular coincide solo con el primer paréntesis de apertura y el último paréntesis de cierre ..
n otras palabras, la expresión regular coincidente es como ...
( match..... )
en lugar d
( (match1)(match2) )
¿Cómo hago que la expresión regular atrape el paréntesis interno?
Gracia