France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 521 membres enregistrés - 2 069 420 posts - 122 057 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Regex : détecter et remplacer les retours à la ligne qui ne suivent pas une double quote
45 connectés(record : 2799 le 29 May 2016 - 15 h 34)

Vous devez vous connecter pour répondre au topic.
Regex : détecter et remplacer les retours à la ligne qui ne suivent pas une double quote

Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 09 March 2017 - 16 h 25 m 56 s
Bonjour,

Je tente de faire un traitement sur un fichier CSV.
Mon fichier généré est de la sorte :
"ref1","ip1","description1"
"ref2","ip1","description2"
"ref1","ip2","description1"
"ref2","ip2","description2"

Sauf que dans la description, j'ai des retours à la ligne, qui sont bien évidemment les mêmes que les retours à la ligne à chaque fin de ligne (uniquement des \n, pas de \r\n).
Exemple :

"RefA","127.0.0.1","bla bla

bla bla

bla bla"
"RefB","127.0.0.1","bla bla bla

bla bla bla

bla bla bla"


Pour pouvoir importer ça dans Excel, je cherche juste à faire quelques remplacements par Notepad++.
Je cherche en gros tous les \n qui ne sont pas précédés par ", et je les remplace par #. Ma regex : [^"]\n
Sauf que la partie [^"] de ma regex match du coup le dernier caractère avant le retour à la ligne, qui du coup est effacé lui aussi en même temps que le \n pour être remplacé par un #.
Je ne sais pas comment faire ma regex.

Bon, j'ai trouvé une solution peu élégante mais rapide à faire pour me dépatouiller :
1) Remplacer tous les "\n par des ";
2) Remplacer tous les \n par #
3) Remplacer tous les "; par des "\n

Ca fonctionne mais si vous avez ça en une regex je vous en serais redevable, merci :)




fouineur
Modérateur
Avatariste fou

Messages : 5 994
Inscrit le 26/09/04
Non connecté
  Posté le 09 March 2017 - 18 h 06 m 16 s
avec une macro VBA ? :sors:




Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 09 March 2017 - 18 h 17 m 11 s
Non mais je cherche une solution "élégante" hein ! :D




HomeBoy38
HomeBoy38

Messages : 1 360
Inscrit le 15/07/07
Ville : Grenoble
Non connecté
  Posté le 09 March 2017 - 20 h 55 m 28 s
D'après ton exemple, il ne te suffit pas de remplacer \n\n par # ?




Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 09 March 2017 - 23 h 24 m 28 s
Non parce que sinon je me retrouve avec toutes les lignes de mon CSV sur la même ligne, et je n'ai plus de différenciation entre les enregistrements.




HomeBoy38
HomeBoy38

Messages : 1 360
Inscrit le 15/07/07
Ville : Grenoble
Non connecté
  Posté le 10 March 2017 - 07 h 17 m 11 s
Tes lignes d'enregistrements ne sont séparées que par un seul \n, donc si tu en cherches 2, tu n'as que dans les champs entre quotes ?




Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 10 March 2017 - 10 h 18 m 10 s
Ben sauf que des fois je n'ai qu'un seul \n, des fois j'en ai 2, ... Je ne peux pas me baser que là dessus.
Je veux juste trouver les \n qui ne sont pas précédés d'un ".




loz
Put something exciting between your legs!

Messages : 8 004
Inscrit le 07/11/01
Ville : Fontaine (sud)
Non connecté
  Posté le 13 March 2017 - 10 h 42 m 56 s



We will change the face of Arrakis

Woofy
Totalement inutile, complètement indispensable

Messages : 31 551
Inscrit le 11/01/02
Ville : Lyon
Non connecté
  Posté le 20 March 2017 - 11 h 14 m 40 s
Merci, je regarde ça dès que je m'y remet. :)




Page genérée en 0.0900 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL | Actualité ADSL | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory