使用正则表达式创建有效的CSV

时间:2009-06-24 16:06:53

标签: regex csv

我有一个可怕的格式,制表符分隔,“CSV”,我正在努力清理。

我想引用所有字段;目前只有部分是。我正在尝试逐个选项卡,并在必要时添加引号。

此RegEx将为我提供所有标签。

\t

此RegEx将为我提供不以"结束的标签。

\t(?!")

如何获取不以"开头的标签?

3 个答案:

答案 0 :(得分:3)

通常对于这些类型的问题,如果它是一次出现,我会使用Excels功能或其他应用程序(SSIS?T-SQL?)来产生所需的输出。

通用正则表达式通常会遇到奇怪的例外情况,并且恰到好处的情况通常需要更长的时间,而且很容易错过正则表达式没有捕获的群体。

如果这种情况会定期发生,请尝试在源头修复问题和/或创建一个特殊的实用程序来执行此操作。

答案 1 :(得分:2)

使用否定的lookbehind:(?<!")\t

答案 2 :(得分:1)

对于这样的一次拍摄,我通常只是编写一个小程序来清理数据,这样我也可以添加一些验证,以确保它在运行后确实已正确转换。我没有反对正则表达式,但在我的情况下,我需要更长的时间才能找出正则表达式而不是编写一个小程序。 :)

编辑:来考虑一下,主要的动力是它更有趣 - 至少对我来说:)。