请教一下各位这个perl程序

请教一下各位这个perl程序

$_ = "bronto5saurussteak";
if(/(bronto)?(saurus)(steak|burger)/)
{

print $1;
print "\n";

}
我想bronto和bronto配
?和5配
saurus和saurus配
steak|burger 和steak配

因此$1应该等于bronto,即应该打印bronto,但结果不对,为什么呢?


QUOTE:
原帖由 yuonunix 于 2008-4-9 16:15 发表
$_ = "bronto5saurussteak";
if(/(bronto)?(saurus)(steak|burger)/)
{

print $1;
print "\n";

}
我想bronto和bronto配
?和5配
saurus和saurus配
steak|burger 和steak配

因此$1应该等于br ...

你上面的那个" ? "表示的是?
哦,这个地方搞错了,应该是和任何字符匹配,加了个. ,以便和5匹配,更正如下:
$_ = "bronto5saurussteak";
if(/(bronto).?(saurus)(steak|burger)/)
{

print $1;
print "\n";

}
但结果还是不对啊
[root@as4server test_script]# cat file6
#!/usr/bin/perl -w

$_ = "bronto5saurussteak";
if(/(bronto).?(saurus)(steak|burger)/)
{

print $1;
print "\n";

}

[root@as4server test_script]# perl file6
bronto
对了,是的,非常谢谢lvDbing。


QUOTE:
原帖由 yuonunix 于 2008-4-9 16:41 发表
对了,是的,非常谢谢lvDbing。

我也是刚学Perl,大家一起加油吧!