Re: [問題] 文字元素的合成
看輸入的形式 我假設同pin一定排在一起 而且裡面的數字一定降冪
如果不是 也可以寫個sort排一下 應該沒幾行
然後就照前面c大的說法來寫 寫成這樣
my $str = 'A, B, C[1], C[0], D, P[3], P[2], P[1],';
my @arr = split /, */, $str;
my (@out, @bus);
sub bus_out {
return unless @bus;
push @out, "[$bus[1]:$bus[2]] $bus[0]";
@bus = ();
}
for (@arr) {
if (/(\w+)\[(\d+)\]/) {
@bus ? ($bus[2] = $2) : (@bus = ($1, $2, $2));
} else {
bus_out;
push @out, $_;
}
}
bus_out;
print "$_;\n" for (@out);
要寫得乾淨比我想像中還難 沒幾行卻寫了好久 orz
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.121.196
※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1556305957.A.993.html
推
04/27 08:46,
5年前
, 1F
04/27 08:46, 1F
→
04/27 09:59,
5年前
, 2F
04/27 09:59, 2F
推
04/27 10:17,
5年前
, 3F
04/27 10:17, 3F
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章