看板 Perl 關於我們 聯絡資訊
※ 引述《YMLS (流逝於指縫的細沙)》之銘言: : 大家好,我有一筆資料如下: : C+2AAT-3CGCA : 我希望寫一行程式,使得數字後面的字母會依照數字的內容被拿走,如下所示: : C+T-A : 我嘗試如下的寫法: : $line='C+10AAAAAAAAAAT-3CGCA'; : $line=~s/(\d+)[ACGTNacgtn]{\1}//g; : 可是 {\1} 無法發揮我想要得效果, : 想請問是否我的語法本身有問題呢?謝謝! 根據 http://perl5.git.perl.org/perl.git/blob?f=dquote_static.c S_regcurly() 在 parse 的時候 { 之後一定要接數字 -- 不能寫 {\1} 我會這樣寫 $line='C1tt+10AAAAAAAAAAT-3CGCA'; while ($line =~ /\d+/) { $pre = $`; ($post = $') =~ s/^[acgtn]{$&}//i; $line = $pre . $post; } print $line . $/; -- -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GCS/M d-(+) s:+ a- C++$ UL++B+ P++(++++) L+ E--@ W++ N? o? K? w(++) !O M !V PS++(+++) PE++(+++) !Y PGP t+++ !5 !X R !tv b++ DI++ D+ G e+++>++++ h--* r y+ ------END GEEK CODE BLOCK------ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 128.36.232.45
herculus6502:我記得可以用eval的option,有請高人出手… 06/17 16:51
CindyLinz:翻 perl 的 source 出來解釋會不會太恐怖....|| 06/17 18:07
YMLS:謝謝您熱心的解答!!Orz 06/17 21:33
dryman:推翻perl source...orz|||| 06/18 10:59
posture:推 06/28 12:10