使用perl严格拆分

时间:2012-11-14 21:56:52

标签: perl split

在下面的代码中,我试图将两个数字分开。分裂功能不正常。例如:当我在0和1之间分割时,分割也发生在10到11的数字之间。

有人可以帮助我吗?

    use strict;
    use warnings;

    my $j= "0,2,3,6,5,1,4,7,8,12,11,10,9";
    my $k=1; my $k1=0,;
    my @ar=split(/($k|$k1)/,$j);

    print join(";",@ar);

    Expected result:0;2,3,6,5;1;4,7,8,12,11,10,9
    Above code result: 0;,2,3,6,5,;1;,4,7,8,;1;2,;1;1;,;1;0;,9

2 个答案:

答案 0 :(得分:1)

首先,您不希望在0或1上拆分,您希望在号码01旁边的逗号上拆分。

split /(?<!\d)(?:0|1)\K,|,(?=(?:0|1)(?!\d))/

答案 1 :(得分:0)

尝试

split /(\b$k\b|\b$k1\b)/, $j

\b是零宽度字边界定界符。