使用notepad ++使用正则表达式在第n个逗号后开始搜索和替换

时间:2014-12-15 21:38:46

标签: regex csv delimiter

我有一个逗号分隔的txt文件,有没有办法正则表达式只能在第n个逗号之后进行搜索和替换,比方说,在第三个逗号之后 这样:

data1,data2,data3,regex,can,start,search,and,replace,here

其实我需要执行这个正则表达式

查找:,key1,[^,]*

替换:,0,0

我从Change the value of the key, then delete the key on comma delimited CSV using regex

学到的

希望我只能在第n个逗号后执行相同的操作

谢谢!

1 个答案:

答案 0 :(得分:2)

我不知道你正在使用什么样的正则表达式,所以你可能需要稍微修复一下(可能是逃避parens /括号),但你的正则表达式应该是这样的:

^([^,]*,){n,}key1,[^,]*

[^,]*,与CSV中的字段和后面的逗号匹配,([^,]*,){n}(用数字替换n)匹配n次。例如,使用sed,您可以使用

sed 's/^\(\([^,]*,\)\{2\}\)key1,[^,]*,/\10,0,/' foo.csv

在第二个逗号后用key1,whatever替换0,0

如果您的意思是在第n个或更晚的逗号之后,请使用{n,}代替{n}(这意味着"匹配n次或更多次)。