作者tcman02 (TCman)
看板Perl
标题Re: [问题] 文字元素的合成
时间Thu Jun 13 13:22:50 2019
若你文字与数字是乱序的话,可以参考看看
use strict;
my $str = "Z[2], Z[1], C[1], C[0], D, P[2], P[1], C[2], B, P[3], A, T,";
my @str_split = split/, */,$str;
@str_split = sort{ (split/\[/,$a)[0] cmp (split/\[/,$b)[0] } @str_split;
my @letter;
my @letter_val;
for (@str_split){
if(/(\w+)\[([+-]*\d+)\]/){
if ($letter[$#letter] ne $1){
push @letter, $1 ;
push @{$letter_val[$#letter]}, $2;
}else{
push @{$letter_val[$#letter]}, $2;
}
}elsif(/\w+/){
push @letter, $_ ;
}
}
for (0..$#letter){
if (@letter_val[$_]){
my @sort_val = sort {$b <=> $a} @{$letter_val[$_]};
printf("[%d:%d] ",$sort_val[0],$sort_val[$
#sort_val]);
}
print $letter[$_]."\n";
}
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.109.183.58 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Perl/M.1560403372.A.12B.html