Python fractionnement de la chaîne par des parenthèses

J'ai posé une question il y a peu (Python fractionnement inconnu chaîne par des espaces et les parenthèses) qui fonctionnait très bien jusqu'à ce que je devais changer ma façon de penser. Je n'ai toujours pas compris regex j'ai donc besoin d'un peu d'aide avec cela.

Si l'utilisateur tape ceci:

new test (test1 test2 test3) test "test5 test6"

J'aimerais qu'il ressemble à la sortie de la variable comme ceci:

["new", "test", "test1 test2 test3", "test", "test5 test6"]

En d'autres mots, s'il est un mot séparé par un espace, puis le diviser à partir du mot suivant, si c'est dans les parenthèses puis diviser le tout un groupe de mots dans les parenthèses et les supprimer. En va de même pour les guillemets.

Je suis actuellement en utilisant ce code qui ne répondent pas à la norme ci-dessus (à Partir des réponses dans le lien ci-dessus):

>>>import re
>>>strs = "Hello (Test1 test2) (Hello1 hello2) other_stuff"
>>>[", ".join(x.split()) for x in re.split(r'[()]',strs) if x.strip()]
>>>['Hello', 'Test1, test2', 'Hello1, hello2', 'other_stuff']

Cela fonctionne bien, mais il y a un problème, si vous avez ceci:

strs = "Hello Test (Test1 test2) (Hello1 hello2) other_stuff"

Il combine le Bonjour et Test d'un split au lieu de deux.

Il n'autorisons pas l'utilisation de parenthèses et les guillemets fractionnement en même temps.

regardez gourmande et non gourmande de correspondance.
Avez-vous un lien à me diriger vers un tutoriel? La plupart de tout ce que je trouve sont des questions qui ne sont pas vraiment m'aider et je ne peux pas lire le python docs à bien. Si c'est tout ce qui reste, il devra le faire.
Désolé, j'ai mal lu la question. Mais voici un lien vers le tutoriel officiel: docs.python.org/2/library/re.html

OriginalL'auteur TrevorPeyton | 2013-06-27