Moteur Python Regex - "Look-behind requiert un modèle à largeur fixe" Erreur

Je suis à tenter de gérer les non-correspondance des guillemets dans une chaîne de caractères au format CSV.

Pour être précis,

"It "does "not "make "sense", Well, "Does "it"

doit être corrigée comme

"It" "does" "not" "make" "sense", Well, "Does" "it"

Donc, fondamentalement, ce que je suis en train de faire est de

remplacer tous les '" '

  1. Pas précédé par un début de ligne ou une virgule (et)
  2. Pas suivi d'une virgule ou une fin de ligne

avec '"" '

Pour que j'utilise le ci-dessous regex

(?<!^|,)"(?!,|$)

Le problème est alors que Ruby regex moteurs ( http://www.rubular.com/ ) sont en mesure d'analyser les regex, python regex moteurs (https://pythex.org/ , http://www.pyregex.com/) de jeter l'erreur suivante

Invalid regular expression: look-behind requires fixed-width pattern

Et avec python 2.7.3 il jette

sre_constants.error: look-behind requires fixed-width pattern

Quelqu'un peut me dire ce que vexes python ici?

==================================================================================

EDIT :

Suivantes Tim réponse, j'ai eu le dessous de la sortie d'un multi-ligne de chaîne

>>> str = """ "It "does "not "make "sense", Well, "Does "it"
... "It "does "not "make "sense", Well, "Does "it"
... "It "does "not "make "sense", Well, "Does "it"
... "It "does "not "make "sense", Well, "Does "it" """
>>> re.sub(r'\b\s*"(?!,|$)', '" "', str)
' "It" "does" "not" "make" "sense", Well, "Does" "it" "\n"It" "does" "not" "make" "sense", Well, "Does" "it" "\n"It" "does" "not" "make" "sense", Well, "Does" "it" "\n"It" "does" "not" "make" "sense", Well, "Does" "it" " '

À la fin de chaque ligne, à côté de "elle", deux guillemets ont été ajoutés.

J'ai donc fait un très petit changement à la regex pour gérer une nouvelle ligne.

re.sub(r'\b\s*"(?!,|$)', '" "', str,flags=re.MULTILINE)

Mais cela donne à la sortie

>>> re.sub(r'\b\s*"(?!,|$)', '" "', str,flags=re.MULTILINE)
' "It" "does" "not" "make" "sense", Well, "Does" "it"\n... "It" "does" "not" "make" "sense", Well, "Does" "it"\n... "It" "does" "not" "make" "sense", Well, "Does" "it"\n... "It" "does" "not" "make" "sense", Well, "Does" "it" " '

Le dernier "elle", lui seul, a deux guillemets.

Mais je me demande pourquoi le '$' caractère de fin de ligne ne permettent pas d'identifier que la ligne est terminée.

==================================================================================

La réponse finale est

re.sub(r'\b\s*"(?!,|[ \t]*$)', '" "', str,flags=re.MULTILINE)

source d'informationauteur SpikETidE