Re: [問題] 文字元素的合成

看板Perl作者 (TCman)時間4年前 (2019/06/13 13:22), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/7 (看更多)
若你文字與數字是亂序的話,可以參考看看 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://www.ptt.cc/bbs/Perl/M.1560403372.A.12B.html
文章代碼(AID): #1T0Tsi4h (Perl)
文章代碼(AID): #1T0Tsi4h (Perl)