作者blackkaku (black)
看板Perl
标题Re: [问题] 请教一个关於正规表示式的问题
时间Fri Dec 17 22:24:20 2010
※ 引述《AlanSung (慈母多败儿)》之铭言:
: ※ 引述《AutumnVic (小点点雨伞儿)》之铭言:
: : 我现在要做的事
: : 是要从很多像这样的字串中
: : ((((((.(((.((((..((((...........))))..)))))..........))...))))))...
: : ........(((((..(((((((..(((.....)))))..))......)))))..)))...
: : 挑出中间部份 "(.....)"的左括和右括分别位在字串中的第几个字元
: : 下面是我的CODE
: : my $haha="....((((((...(((..((.(.(((((.....))))).))...)))))))...)))..";
: : print length($1) if( $haha =~ m/(.*)[^\(]*? /)
: : 但他这样取到的一直都是整个字串的length
: : 而不是我想要的"中间左括"的位子
: : 能不能请厉害的人帮我一下 实在不知道该怎麽拆解找这两个东西 @@
: print length($1) + 1 if( $haha =~ m/(.*)\([^\(]*? /)
: 这样呢? 强迫至少要找到一个 XD
perl -ne '$haha="....((((((...(((..((.(.(((((.....))))).)).(..)))))))...)))..";
while ($haha =~m/\([^\(\)]*\)/g)
{printf "%d\t%d\n",length($`)+1,length($`)+length($&)};exit'
细部还有一点小问题、看看能不能帮上忙吧。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.198.12.168
1F:推 AutumnVic:真的有用!! 因为是初学者还学到了变数的使用 thanks ;D 12/20 09:43