ลบคอลัมน์สุดท้ายออกจากไฟล์ที่คั่นด้วยเครื่องหมายจุลภาค


1

ฉันจะลบคอลัมน์สุดท้ายออกจากไฟล์ที่คั่นด้วยเครื่องหมายจุลภาคใน notepad ++ โดยใช้ regex พร้อมแทนที่และค้นหาได้อย่างไร

นี่คือไฟล์ของฉัน:

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

ฉันพยายามที่จะหารูปแบบนี้ในตอนท้ายของแต่ละบรรทัดโดยทั่วไปคอลัมน์สุดท้ายหรือทุกอย่างหลังจากเครื่องหมายจุลภาคล่าสุดตัวอย่างเช่น:

,31.34
,31.34

นี่คือสิ่งที่ฉันมีจนถึงตอนนี้ แต่ดูเหมือนจะเลือกทั้งบรรทัด:

.*,\d+.\d+

ฉันแค่ต้องการเลือก,31.34และลบมันนั่นคือแทนที่ด้วยไม่มีอะไร

คำตอบ:


3

ฉันทดสอบ regex ต่อไปนี้และทำงานได้:

ค้นหา: (.+),.+?$
แทนที่ด้วย:\1

Regex อธิบายว่า:

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

ซึ่งแตกต่างจาก regex ในคำถามของคุณนี้จะทำงานเกี่ยวกับเนื้อหาที่ตราบใดที่ทุกคนแยกจากกันโดย
,


tks คุณสามารถอธิบายสิ่งที่\1เปรียบเทียบกับการใช้งานได้"" ไหม
HattrickNZ

1
"" หมายถึงการลบ แต่สิ่งที่ regex ของฉันทำคือค้นหาทุกอย่างจนสุดและเก็บไว้ใน \ 1 และทำให้แน่ใจว่ามันค้นหาทั้งแถว ดังนั้นเมื่อคุณแทนที่แถวทั้งหมดจะถูกแทนที่ด้วยสิ่งที่คุณต้องการ การใช้ \ 1 หมายถึงส่วนแรกไปจนถึงสุดท้าย,.
LPChip

1
หากฉันมีสตริงที่ระบุว่า: testและฉันค้นหา (t) (e) (s) (t) มันจะเลือกทุกอย่างและฉันสามารถแทนที่ได้ด้วย \ 1 \ 2 \ 3 \ 4 เพื่อรับการทดสอบกลับ หรือ \ 1 \ 2 \ 4 เพื่อรับ tet หรือ \ 2 \ 3 \ 1 \ 4 เพื่อรับ estt
LPChip
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.