【问题标题】:perl regular expressions assistance please [duplicate]perl正则表达式帮助请[重复]
【发布时间】: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 天。

标签: regex perl split


【解决方案1】:

你想要Text::CSV(或者,如果安装 CPAN 模块对你来说是个问题,那么核心模块 Text::ParseWords 也差不多)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 2011-06-10
    相关资源
    最近更新 更多