【问题标题】:Notepad++ CSV splitting and removing fieldsNotepad++ CSV 拆分和删除字段
【发布时间】:2014-04-09 23:45:36
【问题描述】:

我有一个 CSV 文件中的数据集合,我想对其进行操作,以便只使用其中的一些值。我的例子:

1,2,3,4,5,6
asd,sdf,dfg,fgh,ghj,hjk
asd,sdf,dfg,fgh,ghj,hjk
asd,sdf,dfg,fgh,ghj,hjk
asd,sdf,dfg,fgh,ghj,hjk
asd,sdf,dfg,fgh,ghj,hjk

我想要做的是只使用几个字段并且可能以不同的顺序使用

1,4,3

我知道 notepad++ 可以分解值并使用 \1、\2 等重新排列它们,但我不知道该怎么做。

【问题讨论】:

  • 看看这个regex(不是答案,因为我不知道你是否可以直接将它插入N++)。
  • 我几乎可以工作,但如果有一个空白条目,它就无法处理 do assd,,asd,,,sd,as,sd 谢谢顺便说一句
  • [^,] 之后将+ (1+) 更改为* (0+)。我会发布一个答案。

标签: regex csv notepad++ multiple-columns


【解决方案1】:

Notepad++ 并不是真正的电子表格,这将是您在导入 .CSV 后进行此类编辑的最简单方法。但是,它确实具有一些有限的列编辑功能,这使其可行。需要两个步骤,如下所述。

1) 排列你的文字:

  • a) 突出显示所有文本。
  • b) 选择 TextFX 菜单,
  • c) 然后是 TextFX 编辑子菜单,
  • d) 然后是“按 (,) 排列多行” 选项。

您现在将所有列都以逗号对齐。

2) 删除单个列:

  • a) 确保没有突出显示任何文本。
  • b) 按住 [alt] 键的同时用鼠标选择要删除的列。
  • c) 按删除键删除您突出显示的内容。

以上假设您已安装 TextFX 插件。如果我没记错的话,这是标准的,但如果不是,你可以很容易地找到它并从插件管理器中添加它。

以下是使用 alt 键和鼠标选择对齐列的示例,取自 Notepad++ 官方网站: http://notepad-plus-plus.org/features/column-mode-editing.html

【讨论】:

  • 我只是在正则表达式中寻找查找和替换命令,这有助于我减少执行此过程的时间和人为错误。
  • 啊,很公平。没有在问题中明确看到这一点,实际上从措辞来看,您认为您正在寻找正则表达式的替代品,所以我很抱歉。希望尽管我概述的这种方法仍然可以帮助其他人寻找替代方案,或者希望直观地查看和删除列的人。假设某人可能想要编辑多个文件,每个文件都需要进行不同的列编辑,而不必计算每个正则表达式。
【解决方案2】:

此正则表达式将匹配 6 组每行 0+ 个非逗号字符:

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

然后您可以像这样替换为捕获的组:

\1,\4,\3

RegEx101


旁注:

如果我错了,请有人纠正我。为了清晰起见,我一直试图将其减少到仅一个重复的捕获组,但我似乎无法使其工作,因为它只将其视为一个捕获组:

^([^,]*,?){6}$

【讨论】:

  • 为他的帮助干杯干杯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-11
  • 2020-01-10
  • 2021-02-02
  • 1970-01-01
  • 2014-10-12
  • 1970-01-01
相关资源
最近更新 更多