【问题标题】:How to remove comma from double quotes in perl [duplicate]如何从perl中的双引号中删除逗号[重复]
【发布时间】:2021-06-12 15:39:08
【问题描述】:

输入:

$Input = q("Hello", 5769, "American Company, INC", "Perl", "NDS, SFC", 50);

期望的输出:

"Hello", 5769, "American Company INC", "Perl", "NDS SFC", 50

我试过了,

$Input =~ s/("[^"]+")//ge;

但是没有用。 请提出建议。

【问题讨论】:

    标签: csv perl


    【解决方案1】:

    你可以使用

    $Input =~ s/("[^"]*")/$1=~s|,||gr/ge;
    

    请参阅Perl demo

    这里,

    • ("[^"]*") 匹配并捕获到 $1",然后是除 " 之外的零个或多个字符,然后是 ",然后
    • $1=~s|,||gr 删除此匹配值中的每个逗号(将其替换为空字符串)。

    【讨论】:

      【解决方案2】:

      不完全是您要问的,但您是否考虑过在您的输入中使用 Text::CSV_XS? (或文本::CSV)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-27
        • 1970-01-01
        • 2016-04-29
        • 2015-07-26
        • 2016-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多