hapus kolom terakhir dari file yang dibatasi koma

1

Bagaimana cara menghapus kolom terakhir dari file yang dibatasi koma di notepad ++ menggunakan regex dengan ganti dan temukan?

Ini file saya:

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

Saya mencoba menemukan pola ini di akhir setiap baris, pada dasarnya kolom terakhir atau semuanya setelah koma terakhir, misalnya:

,31.34
,31.34

Inilah yang saya miliki sejauh ini, tetapi tampaknya memilih seluruh baris:

.*,\d+.\d+

Saya hanya ingin memilih ,31.34dan menghapusnya, yaitu menggantinya dengan apa-apa.

HattrickNZ
sumber

Jawaban:

3

Saya menguji regex berikut, dan berhasil:

Cari: (.+),.+?$
Ganti dengan:\1

Regex menjelaskan:

(.+),.+?$
(  )      = 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.

Tidak seperti regex dalam pertanyaan Anda, ini akan berfungsi mengenai konten, selama semuanya
dipisahkan oleh a ,.

LPChip
sumber
tks, bisakah Anda menjelaskan apa yang \1dibandingkan dengan hanya menggunakan "" ?
HattrickNZ
1
"" berarti menghapus. Tapi apa yang regex saya lakukan, adalah menemukan semuanya hingga saat terakhir, dan menyimpannya di \ 1, dan memastikan itu mencari seluruh baris. Jadi ketika Anda mengganti, seluruh baris akan diganti dengan apa pun yang Anda inginkan. Menggunakan \ 1 berarti, bagian pertama sampai yang terakhir,.
LPChip
1
Jika saya memiliki string yang mengatakan: testdan saya mencari (t) (e) (t), maka itu akan memilih semuanya, dan saya bisa menggantinya dengan \ 1 \ 2 \ 3 \ 4 untuk mendapatkan pengujian kembali, atau \ 1 \ 2 \ 4 untuk mendapatkan tet, atau \ 2 \ 3 \ 1 \ 4 untuk mendapatkan estt
LPChip