1

以下のコードでは、2 つの数値を分割しようとしています。分割が正しく機能していません。例: 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
4

2 に答える 2

1

まず、0または1で分割したくない場合は、数値0または。の横のコンマで分割します1

split /(?<!\d)(?:0|1)\K,|,(?=(?:0|1)(?!\d))/
于 2012-11-14T22:07:33.167 に答える
0

試す

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

\bゼロ幅のワード境界区切り文字です。

于 2012-11-14T22:03:06.737 に答える