用记事本++替换通配符

时间:2016-06-30 06:40:53

标签: replace expression notepad++ wildcard

我要修复一个存储大约200,000条记录的txt文件 每条记录应由逗号分隔8列。

但是,某些数据已损坏,导致额外的逗号。我需要摆脱可能在第3列中发生的额外逗号

5180,1103131373,Good Day,ABC,12,34,75484,7 / 1/2014 12:00:00 AM,< ---正确的格式 5180,1103131373,Good,Day,ABC,12,34,75484,7 / 1/2014 12:00:00 AM,< - 不正确

即。在这个例子中,Good Day应该存储在一列而不是两列中。

我可以通过正则表达式(.*,.*,.*),(.*,.*,.*,.*,.*,.*,)找到它们 但是当我尝试使用\1\2替换额外的逗号时,缺少一些记录

欢迎任何输入。提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该将.*替换为[^,\r\n]*,并在模式开始时添加^

使用

^([^,\r\n]*,[^,\r\n]*,[^,\r\n]*),([^,\r\n]*,[^,\r\n]*,[^,\r\n]*,[^,\r\n]*,[^,\r‌​\n]*,[^,\r\n]*,)

并替换为\1\2

[^,\r\n]否定字符类匹配除,,CR和LF符号之外的任何字符。 \1是对第1组(([^,\r\n]*,[^,\r\n]*,[^,\r\n]*))中值的反向引用,\2是对第2组(([^,\r\n]*,[^,\r\n]*,[^,\r\n]*,[^,\r\n]*,[^,\r‌​\n]*,[^,\r\n]*,))中值的反向引用。