【发布时间】:2018-05-05 15:26:49
【问题描述】:
我有一条线:
a,b,"c,d,e",f,g,"h,i,",k,l,m
目前要拆分这一行,并且“。*”中没有逗号 我执行以下操作:
$s =~ s/"[^"]*"//g;
@list = split ',' , $s;
我想在不删除“”中包含的数据的情况下进行拆分
【问题讨论】:
-
输入格式称为 CSV,您应该使用现有的 CSV 解析包之一,它会为您处理所有这些细节。
-
请edit你的问题标题更有意义。 Perl 和 regex 都在标签中可用,因此它们是多余且无用的。剩下的请提供帮助,这也是无用的 - 很明显您需要帮助,否则您不会在这里发布问题。您的标题应具有足够的描述性,以供在搜索结果列表中看到它的未来读者使用。
-
你有一个经典的XY problem。
-
不要重新发明轮子。不要要求我们重新发明轮子;这更没有意义。使用文本::CSV_XS
-
我为 1 个文件尝试了 Text::CSV,它只用了 30 多秒。我使用搜索/订阅的相同功能只需要 1.5 秒多一点。我每天必须处理@ 5,000 个这些文件。这将使我在@ 41 小时内完成 1 天的文件,这将使我每天至少落后 1 天。