J'ai un fichier texte de type CSV qui compte environ 1000 lignes. Entre chaque enregistrement dans le fichier est une longue série de tirets. Les enregistrements se terminent généralement par un \ n, mais il y a parfois un \ n avant la fin de l'enregistrement. Exemple simplifié:Lookahead négatif après newline?
"1x", "1y", "Hi there"
-------------------------------
"2x", "2y", "Hello - I'm lost"
-------------------------------
"3x", "3y", "How ya
doing?"
-------------------------------
Je veux remplacer le \ n supplémentaire est avec des espaces, à savoir concaténer les lignes entre les tirets. Je pensais que je serais capable de le faire (Python 2.5):
text = open("thefile.txt", "r").read()
better_text = re.sub(r'\n(?!\-)', ' ', text)
mais qui semble remplacer tous les \ n, pas seulement ceux qui ne sont pas suivies par un tiret. Qu'est-ce que je fais mal?
Je pose cette question dans le but d'améliorer mes propres compétences en regex et de comprendre les erreurs que j'ai commises. L'objectif final est de générer un fichier texte dans un format utilisable par une macro VBA spécifique pour Word qui génère un document Word stylé qui sera ensuite digéré par un CMS convivial.
Si c'était Perl je dirais mettre $/'à ------------------------------- '' –