【发布时间】:2017-08-17 20:19:10
【问题描述】:
我对 Notepad++ 正则表达式一无所知。
这是我的 CSV 中的数据:
6454345|User1-2ds3|62562012032|324|148|9c1fe63ccd3ab234892beaf71f022be2e06b6cd1
3305611|User2-42g563dgsdbf|22023001345|0|0|c36dedfa12634e33ca8bc0ef4703c92b73d9c433
8749412|User3-9|xgs|f|98906504456|1534|51564|411b0fdf54fe29745897288c6ad699f7be30f389
如何使用正则表达式删除第 5 列和第 6 列?第 5 列和第 6 列中的数字长度可变。
另一个问题是用户行也可以包含一个 |,使情况更糟。
我可以使用宏来解决这个问题,但文件有几百万行。
这是我想要达到的最终结果:
6454345|User1-2ds3|62562012032|9c1fe63ccd3ab234892beaf71f022be2e06b6cd1
3305611|User2-42g563dgsdbf|22023001345|c36dedfa12634e33ca8bc0ef4703c92b73d9c433
8749412|User3-9|xgs|f|98906504456|411b0fdf54fe29745897288c6ad699f7be30f389
我愿意就如何使用其他程序、命令行实用程序(Linux 或 Windows)执行此操作提出建议。
【问题讨论】:
-
User1-2ds3变成User2-42g563dgsdbf,User2-9xg|s变成User2-9|xgs的逻辑是什么? -
@trincot 错误地复制/粘贴并在之后编辑这些行。我现在已经修复了这个例子。
-
User row can also contain a |是的,如果管道是分隔符,除非在字段中转义,否则无法与分隔符区分。这意味着,没有解决方案。对不起... -
这将是格式错误的 CSV,因为并非所有行都具有相同的列数。根据您将其加载到的内容,它可能有效,也可能无效。
-
use a Regex to remove the 5th and 6th column但是您已经接受了一个面向 End 的解决方案...从末尾删除|col|col|col`从头开始的第 5 和第 6 列
标签: regex database csv notepad++