#! perl
#非捕获分组
$str = 'wang haojie aab haojie ccdaabe' . 'goo';
print "str=#$str#\n";
if($str =~ /(?:ng\s+)(haojie\s+)aab\s\1/)
{
print 'matched'."\n";
print "#$1#","\n";
print '$`=',$`,"\n";
print '$&=',"#$&#","\n";
print '$\'=',$',"\n";
}
else{
print 'not matched'."\n";
print "#$1#","\n";
}
#-------------------------------------------------------------------
print '-'x50,"\n";
#分组匹配,匹配前面出现过的文本
$str = 'wang haojie aab haojie ccdaabe' . 'goo';
print "str=#$str#\n";
if($str =~ /(haojie\s+)aab\s\1/)
{
print 'matched'."\n";
print "#$1#","\n";
print '$`=',$`,"\n";
print '$&=',"#$&#","\n";
print '$\'=',$',"\n";
}
else{
print 'not matched'."\n";
print "#$1#","\n";
}
#-------------------------------------------------------------------
#贪心匹配和非贪心匹配
print '-'x50,"\n";
$str = 'aaabbbdcdsdbbbbbbbbbbbbbbds';
print "str=#$str#\n";
if($str =~ /(b{4,7})/)
{
print 'matched'."\n";
print "#$1#","\n";
print '$`=',$`,"\n";
print '$&=',"#$&#","\n";
print '$\'=',$',"\n";
}
else{
print 'not matched'."\n";
print "#$1#","\n";
}
#-------------------------------------------------------------------
#仅截取一段文本
print '-'x50,"\n";
$str = 'aaabbbdcdsdbbbbbbbbbbbbbbds';
print "str=#$str#\n";
if($str =~ /(.{4,8})/)
{
print 'matched'."\n";
print "#$1#","\n";
print '$`=',$`,"\n";
print '$&=',"#$&#","\n";
print '$\'=',$',"\n";
}
else{
print 'not matched'."\n";
print "#$1#","\n";
}
#非捕获分组
$str = 'wang haojie aab haojie ccdaabe' . 'goo';
print "str=#$str#\n";
if($str =~ /(?:ng\s+)(haojie\s+)aab\s\1/)
{
print 'matched'."\n";
print "#$1#","\n";
print '$`=',$`,"\n";
print '$&=',"#$&#","\n";
print '$\'=',$',"\n";
}
else{
print 'not matched'."\n";
print "#$1#","\n";
}
#-------------------------------------------------------------------
print '-'x50,"\n";
#分组匹配,匹配前面出现过的文本
$str = 'wang haojie aab haojie ccdaabe' . 'goo';
print "str=#$str#\n";
if($str =~ /(haojie\s+)aab\s\1/)
{
print 'matched'."\n";
print "#$1#","\n";
print '$`=',$`,"\n";
print '$&=',"#$&#","\n";
print '$\'=',$',"\n";
}
else{
print 'not matched'."\n";
print "#$1#","\n";
}
#-------------------------------------------------------------------
#贪心匹配和非贪心匹配
print '-'x50,"\n";
$str = 'aaabbbdcdsdbbbbbbbbbbbbbbds';
print "str=#$str#\n";
if($str =~ /(b{4,7})/)
{
print 'matched'."\n";
print "#$1#","\n";
print '$`=',$`,"\n";
print '$&=',"#$&#","\n";
print '$\'=',$',"\n";
}
else{
print 'not matched'."\n";
print "#$1#","\n";
}
#-------------------------------------------------------------------
#仅截取一段文本
print '-'x50,"\n";
$str = 'aaabbbdcdsdbbbbbbbbbbbbbbds';
print "str=#$str#\n";
if($str =~ /(.{4,8})/)
{
print 'matched'."\n";
print "#$1#","\n";
print '$`=',$`,"\n";
print '$&=',"#$&#","\n";
print '$\'=',$',"\n";
}
else{
print 'not matched'."\n";
print "#$1#","\n";
}