Re: [問題] 同一行上字串的處理

看板Perl作者 (TONICOM)時間16年前 (2009/01/08 18:16), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《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
文章代碼(AID): #19PT9XVc (Perl)
文章代碼(AID): #19PT9XVc (Perl)