作者scwg ( )
看板Perl
标题Re: [问题] 请问如何在{}里面使用\1?
时间Mon Jun 17 16:23:47 2013
※ 引述《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
1F:推 herculus6502:我记得可以用eval的option,有请高人出手… 06/17 16:51
2F:推 CindyLinz:翻 perl 的 source 出来解释会不会太恐怖....|| 06/17 18:07
3F:推 YMLS:谢谢您热心的解答!!Orz 06/17 21:33
4F:推 dryman:推翻perl source...orz|||| 06/18 10:59
5F:推 posture:推 06/28 12:10