perl中模式匹配的问题
帮我看下下面这个程序:usestrict;usewarnings;my$string1="madamimadam";my$string2="themottomeansso...
帮我看下 下面这个程序:
use strict;
use warnings;
my $string1 = "madam im adam";
my $string2 = "the motto means something";
my $string3 = "no palindrome here";
findPalindrome( $string1 );
findPalindrome( $string2 );
findPalindrome( $string3 );
sub findPalindrome
{
my $string = shift();
if ( $string =~
/(\w)\W*(\w)\W*(\w)\W*(\w)\W*\4\W*\3\W*\2\W*\1/
or $string =~
/(\w)\W*(\w)\W*(\w)\W*(\w)\W*\3\W*\2\W*\1/ ) {
print "$string - ",
"has a palindrome of at least 7 characters.\n";
}
else {
print "$string - has no long palindromes.\n";
}
}
有点不明白的地方:
(1):
my $string = shift();这句话是什么意思啊,shift()有什么作用,在网上看了下,说是用于数组的,但用在这是什么意思呢?
(2) :
在上面的模式匹配中,出现了\4 \3 \2 \1 之类的东西,那么这个代表什么意思呢?好像没碰到过这样用的。
谢谢各位! 展开
use strict;
use warnings;
my $string1 = "madam im adam";
my $string2 = "the motto means something";
my $string3 = "no palindrome here";
findPalindrome( $string1 );
findPalindrome( $string2 );
findPalindrome( $string3 );
sub findPalindrome
{
my $string = shift();
if ( $string =~
/(\w)\W*(\w)\W*(\w)\W*(\w)\W*\4\W*\3\W*\2\W*\1/
or $string =~
/(\w)\W*(\w)\W*(\w)\W*(\w)\W*\3\W*\2\W*\1/ ) {
print "$string - ",
"has a palindrome of at least 7 characters.\n";
}
else {
print "$string - has no long palindromes.\n";
}
}
有点不明白的地方:
(1):
my $string = shift();这句话是什么意思啊,shift()有什么作用,在网上看了下,说是用于数组的,但用在这是什么意思呢?
(2) :
在上面的模式匹配中,出现了\4 \3 \2 \1 之类的东西,那么这个代表什么意思呢?好像没碰到过这样用的。
谢谢各位! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询