Bonjour,

  • Introduction

Tout d'abord, je tiens à preciser que je tiens à signaler que je ne cherche pas forcement la reponse toute faite, mais que l'on m'explique pourquoi cela ne marche.

Cela me désole, des qu'il s'agit d'une regex un peu compliqué, cela ne marche jamais avec moi.


  • Sujet

J'ai un fichier excel avec 3 colonnes pouvant contenir n'importe quel caractères. Je fais un copié collé des cellules du tableur dans mon gvim. J'obtiens donc par exemple ce genre de résultat :



  • Résultat attendu


insert MATABLE set f1='33' ,f2='77' ,f3='33';
insert MATABLE set f1='4' ,f2='8' ,f4='333';

  • Mes premiers tests :


J'ai fais le choix d'utiliser le caractère # délémiteur pour que ce soit un peu plus claire au du \.

J'ai tenté ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
:%s#\(^.*)\t\(.*)\t(.*$)#\1#g
mais cela me mets comme erreur :
E54: \( ouvrante non fermée
E478 : Commande non valide
  • Mon raisonnement :


Je vous explique comment j'ai ecris mon pattern. N'hesitez pas à me corriger la ou mon raisonnement n'est pas correct. J'ai donc fais expres de bien comment j'ai écris le pattern.

pattern : \(^.*)\t\(.*)\t(.*$)

Le premier sous ensemble :

Le premier sous ensemble commence dès le début de la ligne (utilisation de ^)
et et est une suite de 1 ou plusieurs caractères :
Le premier sous ensemble s'arrete a la première tabulation, je mets donc juste apres le premier sous \t
Pour que le premier sous ensemble soit bien reconnu comme sous ensemble, je mets un \
Le deuxième sous ensemble :

Le deuxième sous ensemble commence juste apres la première tabulation et il est constitué de n'importe quel caractères et se termine par la 2ème tabulation :
Le troisième sous ensemble :

Le troisième sous ensemble est commence apres la 2ème tabulation. Il est constitué de n'importe quel caractère et est à la fin de la ligne (utilisation de $)
Ou me suis je trompé ?