答案1
如果文件除了逗号后的空格之外不包含其他空格字符,则搜索和替换中无需使用正则表达式。您只需打开代替...对话框中输入一个空格字符找什么:确保盒子里没有东西用。。。来代替:盒子。
如果尚未重命名,请确保将文件重命名为 .csv。如果您有隐藏已知文件类型的扩展名在 Windows 资源管理器中启用(默认),您将需要使用新的文件扩展名重新保存文件;禁用 Windows 资源管理器设置或通过命令行重命名文件。
答案2
CSV 文件格式尚未完全标准化,即使存在RFC4180
(本标准仅规定了基于文本的字段的处理)。
RFC4180要求:
- 以 (CR/LF) 字符结尾的 MS-DOS 样式的行(最后一行可选)。
- 可选的标题记录(没有可靠的方法来检测它是否存在,因此导入时需要小心)。
- 每条记录“应该”包含相同数量的以逗号分隔的字段。
- 任何字段都可以用引号引起来(用双引号)。
- 包含换行符、双引号和/或逗号的字段应该用引号引起来。(如果没有,文件很可能无法正确处理)。
- 字段中的(双)引号字符必须用两个(双)引号字符表示。
回到你的问题:
例如,我有一个以逗号分隔的电子邮件地址列表
[email protected], [email protected], [email protected]
但我需要将其转换为正确的 CSV 格式。因此,我假设替换空格
删除空格:
- 按Ctrl+ H。
- 在字段
Find what
类型中[ \t]+
- 该字段
Replace with
应为空。 - 在
Search mode
部分中切换单选按钮regular expression
并点击按钮Replace All
清除空格中的文本后,您可能需要将列数据括在引号中:
- 按Ctrl+ H。
- 在字段
Find what
类型中([^,\r\n]+)
- 在字段
Replace with
类型中\"\1\"
- 在
Search mode
部分中切换单选按钮regular expression
并点击按钮Replace All
笔记:这(用引号括住数据)适用于以 DOS/Windows 格式保存的文本,如果您处理来自 Linux 的数据,则删除\r
表单Find what
字段。