【发布时间】:2016-11-02 02:37:08
【问题描述】:
我要修复一个存储大约 200,000 条记录的 txt 文件 每条记录应包含 8 列,以逗号分隔。
但是,某些数据已损坏,从而导致额外的逗号。我需要去掉第 3 列中可能出现的多余逗号
5180,1103131373,Good Day,ABC,12,34,75484,7/1/2014 12:00:00 AM,
即在此示例中,Good Day 应存储在一列而不是两列中。
我可以通过正则表达式找到它们(.*,.*,.*),(.*,.*,.*,.*,.*,.*,)
但是当我尝试使用\1\2 替换多余的逗号时,一些记录丢失了
欢迎任何意见。提前致谢。
【问题讨论】:
-
将
.*替换为[^,\r\n]*并在模式开始处添加^。 -
顺便说一句,将第三列的内容封装成双引号而不是删除逗号会更好吗?
Good, Day→"Good, Day" -
谢谢 Wiktor Stribiżew。解决了正则表达式的问题: (^[^,\r\n]*,[^,\r\n]*,[^,\r\n]*),(^[^,\r\n] *,[^,\r\n]*,[^,\r\n]*,[^,\r\n]*,[^,\r\n]*,[^,\r\n] *,) 替换为 \1\2
-
Miroxlav 您的建议非常好,但我不知道如何为此编写替换正则表达式。我会考虑的。美好的一天!
标签: replace expression notepad++ wildcard