Re: [請益] 字串拼接的方式
重新修改與精簡~
my $FLOW;
my @Array=();
s/(\)\s+\;)+?|\?|\:/=/g;
@Array = split(/\=/, $_);
for(@Array)
{
s/^\s+|\s+$//g;
$Array[1] =~ s/\s+//g;
$Array[1] =~ s/,/, /g;
}
$blank0 = " "x(25 - length(Array[0]));
$blank1 = " "x(32 - length(Array[1]));
$blank2 = " "x(50 - length(Array[2]));
$FLOW = "$Array[0]$blank0 ? $Array[1]$blank1 : $Array[2]$blank2 ); $Array[3]
";
※ 引述《luncha (謝謝)》之銘言:
: 各位大大,目前要處理字串重新排列的問題
: 透過split+substr,能夠完成,但是$FLOW宣告的方式有點怪,
: 想了解有沒有更好的寫法呢? 謝謝
: <以下是字串與code內容:>
: =====字串======
: OPEN_SHORT ? : #C(hw_fail_1, sw_fail_1 ) ; //AA
: MBIST ? : #C(hw_fail_2, sw_fail_2 ) ;//BB
: last_item? #C(pass, pass) : #C(hw_fail_3, sw_fail_3 ) ;
: =====執行程式的輸出=====
: OPEN_SHORT ? : #C(hw_fail_1, sw_fail_1 );//AA
: MBIST ? : #C(hw_fail_2, sw_fail_2 );//BB
: last_item ? #C(pass, pass) : #C(hw_fail_3, sw_fail_3 );
: =====程式=====
: my $FLOW=" ";
: my @Array=();
: $FLOW =~ s/\)\s+\;/=/g;
: $FLOW =~ s/\?|\:/=/g;
: @Array = split(/\=/, $FLOW);
: $Array[0] =~ s/\s+//g;
: $Array[1] =~ s/^\s+|\s+$//g;
: $Array[1] =~ s/\(\s+/(/g;
: $Array[1] =~ s/(\w+)$/$1)/g;
: $Array[2] =~ s/^\s+|\s+$//g;
: $Array[3] =~ s/^\s+|\s+$//g;
: substr($FLOW, 0,0) = "Array[0]";
: substr($FLOW, 16,0) = "? Array[1]";
: substr($FLOW, 31,0) = ": Array[2]";
: substr($FLOW, 56,0) = ");Array[3]";
: print $FLOW;
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.231.114.132 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1588990105.A.021.html
※ 編輯: luncha (61.231.114.132 臺灣), 05/09/2020 12:29:24
→
05/11 21:22,
4年前
, 1F
05/11 21:22, 1F
→
05/11 21:22,
4年前
, 2F
05/11 21:22, 2F
→
05/11 21:24,
4年前
, 3F
05/11 21:24, 3F
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章