作者TONICOM (TONICOM)
看板Perl
标题Re: [问题] 同一行上字串的处理
时间Thu Jan 8 18:16:00 2009
※ 引述《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