具有特定值notepad ++的regex行结束csv文件

时间:2013-12-31 02:16:32

标签: regex csv notepad++

我有一个很大的csv文件,我需要以特定方式编辑:

代码:

56;CZ;null;;null;49,7500;15,5000;null;
57;DE;null;;null;51,0000;9,0000;null;
58;DJ;null;;null;11,5000;43,0000;null;
133176;US;GA;Brookfield;31727;31,4185;-83,3910;525;229
133177;US;PA;Daisytown;15427;40,0668;-79,9722;508;724

我需要在该行的末尾添加' null'如果在最后一个之后没有任何内容,那就是值;'' 所以我需要在执行我的正则表达式之后获得类似的东西

56;CZ;null;;null;49,7500;15,5000;null;null
57;DE;null;;null;51,0000;9,0000;null;null
58;DJ;null;;null;11,5000;43,0000;null;null
133176;US;GA;Brookfield;31727;31,4185;-83,3910;525;229
133177;US;PA;Daisytown;15427;40,0668;-79,9722;508;724

你有什么想法吗?我已经尝试使用notepad ++替换函数和正则表达式

find what: ;\n
replace with: ;null\n

但是我得到这样的东西:

56;CZ;null;;null;49,7500;15,5000;null;
null
57;DE;null;;null;51,0000;9,0000;null;
null
58;DJ;null;;null;11,5000;43,0000;null;
null
133176;US;GA;Brookfield;31727;31,4185;-83,3910;525;229
133177;US;PA;Daisytown;15427;40,0668;-79,9722;508;724

知道出了什么问题吗?

2 个答案:

答案 0 :(得分:4)

请使用以下模式,然后使用;null

进行替换
;$

这是一个简单的模式,它将所有Semicolon都放在一行的末尾($表示在可选的\ n之前,以及字符串的结尾)

notepad++

答案 1 :(得分:1)

另一种解决方案是使用正面观察

Find: (?<=;$)
Replace: null

正则表达式:

(?<=           look behind to see if there is:
 ;             ';'
 $             before an optional \n, and the end of the string
)              end of look-behind

请参阅Live demo