perl正規表示式中的特殊變數

zk1878發表於2011-04-26

在perl的正規表示式中有幾個非常重要的變數值得注意

1、$_

如果不另外指定,則表示目標串

2、$` :

目標串中當前匹配串之前的字串

3、$& :

目標串中當前的匹配串

4、$'   :

目標串中當前匹配串之後的字串

5、$1($2,$3,...$n)

正則分組字串,以1開始

6. $-[n],$+[n]

組匹配的開始與結束位置,n表示第幾組,從0開始。0表示整個匹配

7. $+

與搜尋模式相匹配的最後一個模式

 

以下為例子

 

$_ = 'ABcde123D';
if (/([a-z]+)(\d+)/) {
	print "\$1:$1,\$2:$2,\$`:$`,\$&:$&,\$':$'\n";
	print "entie match $&:start position,$-[0]; end position,$+[0]\n";
	print "first group $1:start position,$-[1]; end position,$+[1]\n";
	print "second group $2:start position,$-[2]; end position,$+[2]\n";
}
else{
	print 'not find';
}

 輸出:

 

$1:cde,$2:123,$`:AB,$&:cde123,$':D
first group cde123:start position,2; end position,8
first group cde:start position,2; end position,5
second group 123:start position,5; end position,8

相關文章