在Notepad ++中,如何在第X个实例PER LINE之后替换给定字符的所有实例?

时间:2012-05-14 20:07:22

标签: regex notepad++

我有一个CSV我正在尝试格式化,但输入数据有很多逗号开头。如果我可以用分号简单地替换给定行上的所有逗号(在第4章之后),那将会容易得多。

无论如何使用简单的查找/替换正则表达式来执行此操作,还是需要编程?

2 个答案:

答案 0 :(得分:3)

最简单的方法(因为Notepad ++的正则表达式不支持可变长度的lookbehind断言)来解决这个问题可能需要分三步完成:

首先,将前四个逗号更改为唯一的:搜索

^([^,]*),([^,]*),([^,]*),([^,]*), 

并替换为\1#COMMA#\2#COMMA#\3#COMMA#\4#COMMA#

然后,用分号替换所有逗号。

最后,用逗号替换所有#COMMA#

这假设所有带逗号的行确实至少有四行。

答案 1 :(得分:1)

你应该能够在find / replace中使用正则表达式。 在Notepad ++中尝试以下内容:

Find what:    ([^,]*),([^,]*),([^,]*),([^,]*),
Replace with: \1,\2,\3,\4;

不要忘记检查正则表达式单选按钮。