求助,关于字符串截取的问题

求助,关于字符串截取的问题

求助,关于字符串截取的问题
有一个字符串$a= "www(222222 22222222 222222222)wwwwww”;
我现在想把这个字条串括号()中间的数字给放到另一个变量$b中,请问应该如何处理,
我想用正则表达式解决这个问题,有办法吗?
求助,关于字符串截取的问题
$a=~ m/\((.*)\)/;
$b=$1;
能不能不通过$1这类的内置.
能不能不通过$1这类的内置变量返回匹配后的结果呢
[quote]回复给 yesperl : .
[quote]回复给 yesperl : 能不能不通过$1这类的内置....[/quote]

$a=~ s/^.*\(//g;
$a=~ s/\).*$//g;
这样$a里面就只有括号里的东西了,不过我觉得还是用内置变量更方便
或者不用正则表达式
$p1=index($a,"(",0);
$p2=index($a,")",$p1);
$b=substr($a,($p1+1),($p2-$p1));
这样也可以,但是还是没有正则表达式简洁
初出茅庐 你说的内置变量.
初出茅庐 你说的内置变量更方便是什么意思呢,能不能详细的解释一下,
[quote]回复给 yesperl : .
[quote]回复给 yesperl : 初出茅庐 你说的内置变量....[/quote]
如果用第二种方法,原先的$a中的内容就被破坏了,只剩下括号中的内容了,而如果用内置变量就不会出现这样的问题,括号中的内容被保存到内置变量中,然后赋值给$b就可以了。
但是如果程序中像这样分割.
但是如果程序中像这样分割字符串的地方比较多,都使用内置变量,不会引起混乱吗?
[quote]回复给 yesperl : .
[quote]回复给 yesperl : 但是如果程序中像这样分割....[/quote]
的确如果你分隔太多,或者你不知道会有多少分隔,用这种方法就比较麻烦了,但是如果是这种状况,几乎所有的办法都会碰到点问题
可以这样用正则表达式:
for($i=0;$a=~ m/\((.*?)\)/;$i++){
$b[$i]=$1;
$a=$';
}
这样@b中就把所有括号中的内容都提出来了
好的, 谢谢您的帮助, [C.
好的, 谢谢您的帮助, [CCB]1[/CCB]
我刚开始学perl, 不懂的比较多,谢谢论坛上的兄弟姐妹们