Regex pour diviser des mots en Python

J'ai été la conception d'une regex pour split tous les mots réels à partir d'une donnée texte:

D'Entrée Exemple:

"John's mom went there, but he wasn't there. So she said: 'Where are you'"

Résultat Attendu:

["John's", "mom", "went", "there", "but", "he", "wasn't", "there", "So", "she", "said", "Where", "are", "you"]

J'ai pensé à une regex comme ça:

"(([^a-zA-Z]+')|('[^a-zA-Z]+))|([^a-zA-Z']+)"

Après la séparation en Python, le résultat contient None éléments et des espaces vides.

Comment se débarrasser de la Aucun des éléments? Et pourquoi ne pas les espaces match?


Edit:

La séparation d'espaces, donnera des éléments tels que: ["there."]

Et fractionnement sur les non-lettres, donnera des éléments tels que: ["John","s"]

Et fractionnement sur les non-lettres, sauf ', donnera des éléments tels que: ["'Where","you'"]

source d'informationauteur Betamoo