supprimer la dernière colonne d'un fichier délimité par des virgules

1

Comment puis-je supprimer la dernière colonne d'un fichier délimité par des virgules dans Notepad ++ à l'aide de regex avec replace and find?

Ceci est mon dossier:

2010-09-02,148.67,31.34,0,0,31.34
2010-09-03,149.52,31.24,0,0,31.24
...

J'essaie de trouver ce modèle à la fin de chaque ligne, essentiellement la dernière colonne ou tout ce qui suit la dernière virgule, par exemple:

,31.34
,31.34

C’est ce que j’ai eu jusqu’à présent, mais cela semble sélectionner toute la ligne:

.*,\d+.\d+

Je veux juste le sélectionner ,31.34et le supprimer, c’est le remplacer par rien.

HattrickNZ
la source

Réponses:

3

J'ai testé la regex suivante, et cela fonctionne:

Rechercher: (.+),.+?$
Remplacer par:\1

La regex a expliqué:

(.+),.+?$
(  )      = this is a capture group. Its content will be \1, \2, \3 in order of appearance.
 .+       = This selects everything greedy mode
    ,     = until it finds the last comma.
(.+),     = get everyting except the last , and store it in \1.
     .+?  = Get everything, non greedy.
        $ = until we find the end of the string.

Contrairement à la regex dans votre question, cela fonctionnera en ce qui concerne le contenu, à condition que tout soit
séparé par un ,.

LPChip
la source
Tks, pouvez-vous simplement expliquer ce que l’ \1on compare à la simple utilisation "" ?
HattrickNZ
1
"" signifie enlever. Mais ce que mon regex fait, trouve tout, jusqu’à ce dernier, et le stocke dans \ 1, et s’assure qu’il recherche toute la ligne. Ainsi, lorsque vous remplacez, toute la ligne est remplacée par ce que vous voulez. Utiliser \ 1 signifie, la première partie jusqu’à la dernière,.
LPChip
1
Si j’avais une chaîne qui disait: testet que j’ai cherché (t) (e) (s) (t), alors il sélectionnerait tout, et je pourrai le remplacer par \ 1 \ 2 \ 3 \ 4 pour obtenir le test en arrière, ou \ 1 \ 2 \ 4 pour obtenir tet, ou \ 2 \ 3 \ 1 \ 4 pour obtenir estt
LPChip