Re: [問題] 同一行上字串的處理
※ 引述《Austin9 (奧斯丁)》之銘言:
: 不好意思,想請問一下同一行字串的處理
: 現在有一組字串如下
: $test=aa#apple;inquire;keep/bb#about;abc;grammar;new;englsih;
: 想將它改成為
: aa@1apple@2inquire@3keep/bb@1about@2abc@3grammar@4new@5englsih
: 我的寫法為先將#號都改成@1,但是";"這部份就有困難了,我用reg方
: 式去判斷結果是一直累加下去,變成如下
: aa@1apple@2inquire@3keep/bb@1about@4abc@5grammar@6new@7englsih
: $ECounter = 2;
: if (/#/) {
: s/#/@.1/ge;
: if (/\@1/) {
: $ECounter = 2;
: s/;/@.$ECounter++/ge;
: print ;
: }
: }
: 這樣看起來,好像它會並不會去判斷後面的東西,而是直接replace,有方法
: 可以利用reg且還可以在同一行進行判斷嗎?謝謝。
我也來分享一下 , 不過前輩的寫得比我好很多 , 我自己也試著寫看 :
@test = map{$i=0;$_ =~ s/\W/$i++ ;"@".$i/eg;$_} split(/\//,$test);
$test = $test[0]."/".$test[1];
print $test;
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.80.66
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章