Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 非常弦分裂_String_Algorithm_Perl - Fatal编程技术网

String 非常弦分裂

String 非常弦分裂,string,algorithm,perl,String,Algorithm,Perl,我有一根绳子 my $str = 'one ; two - three; four - five | six - seven; eight ; nine-ten | eleven - twelve | thirteen - fourteen; '; 我需要输出如下所示 one ; two - three; four - five ; eight ; nine-ten ; ; ; six - seven ; ; eleven - t

我有一根绳子

my $str = 'one ; two - three; four - five | six - seven; eight ; nine-ten | eleven - twelve | thirteen - fourteen; ';
我需要输出如下所示

one ; two - three; four - five ; eight ; nine-ten            ;
    ;            ; six - seven ;       ; eleven - twelve     ;
    ;            ;             ;       ; thirteen - fourteen ;
按“;”拆分字段,并用“|”)分开)
请帮帮我这可以实现你的目标:

#!/usr/bin/perl

use warnings;
use strict;

use List::Util qw(max);

my $str = 'one ; two - three; four - five | six - seven; eight ; nine-ten | eleven - twelve | thirteen - fourteen; ';

my @fields = map { [ split /\s*\|\s*/ ] } split /\s*;\s*/, $str;

my $max_row = max map { scalar(@$_) } @fields;

foreach my $row (0 .. $max_row-1) {
    foreach my $col (@fields) {
        my $width = max map { length ($_) } @$col;
        printf " %-*s ;", $width, $col->[$row] ? $col->[$row] : " ";
    }
    print "\n";
}

这可以实现您的目标:

#!/usr/bin/perl

use warnings;
use strict;

use List::Util qw(max);

my $str = 'one ; two - three; four - five | six - seven; eight ; nine-ten | eleven - twelve | thirteen - fourteen; ';

my @fields = map { [ split /\s*\|\s*/ ] } split /\s*;\s*/, $str;

my $max_row = max map { scalar(@$_) } @fields;

foreach my $row (0 .. $max_row-1) {
    foreach my $col (@fields) {
        my $width = max map { length ($_) } @$col;
        printf " %-*s ;", $width, $col->[$row] ? $col->[$row] : " ";
    }
    print "\n";
}

这可以实现您的目标:

#!/usr/bin/perl

use warnings;
use strict;

use List::Util qw(max);

my $str = 'one ; two - three; four - five | six - seven; eight ; nine-ten | eleven - twelve | thirteen - fourteen; ';

my @fields = map { [ split /\s*\|\s*/ ] } split /\s*;\s*/, $str;

my $max_row = max map { scalar(@$_) } @fields;

foreach my $row (0 .. $max_row-1) {
    foreach my $col (@fields) {
        my $width = max map { length ($_) } @$col;
        printf " %-*s ;", $width, $col->[$row] ? $col->[$row] : " ";
    }
    print "\n";
}

这可以实现您的目标:

#!/usr/bin/perl

use warnings;
use strict;

use List::Util qw(max);

my $str = 'one ; two - three; four - five | six - seven; eight ; nine-ten | eleven - twelve | thirteen - fourteen; ';

my @fields = map { [ split /\s*\|\s*/ ] } split /\s*;\s*/, $str;

my $max_row = max map { scalar(@$_) } @fields;

foreach my $row (0 .. $max_row-1) {
    foreach my $col (@fields) {
        my $width = max map { length ($_) } @$col;
        printf " %-*s ;", $width, $col->[$row] ? $col->[$row] : " ";
    }
    print "\n";
}

为什么你不能在
上拆分进入一个数组,然后在
|
上进入另一个级别?有什么问题吗?@NickT可以显示代码。为什么你不能在
上拆分进入一个数组,然后在
|
上进入另一个级别?有什么问题吗?@NickT可以显示代码。为什么你不能在
上拆分进入一个数组,然后在
|
上进入另一个级别?有什么问题吗?@NickT可以显示代码。为什么你不能在
上拆分进入一个数组,然后在
|
上进入另一个级别?有什么问题吗?@NickT可以显示代码,请注意空格显然很重要;在问题中的示例输出中,“two-three”不会在三之后添加空格。嗯,但是我看到十四个;是否添加了空格?空格显然很重要;在问题中的示例输出中,“two-three”不会在三之后添加空格。嗯,但是我看到十四个;是否添加了空格?空格显然很重要;在问题中的示例输出中,“two-three”不会在三之后添加空格。嗯,但是我看到十四个;是否添加了空格?空格显然很重要;在问题中的示例输出中,“two-three”不会在三之后添加空格。嗯,但是我看到十四个;是否添加了空间?