lakers009 发表于 2017-5-19 07:38:05

perl正则表达式中的特殊变量

  在perl的正则表达式中有几个非常重要的变量值得注意
  1、$_
  如果不另外指定,则表示目标串
  2、$` :
  目标串中当前匹配串之前的字符串
  3、$& :
  目标串中当前的匹配串
  4、$'   :
  目标串中当前匹配串之后的字符串
  5、$1($2,$3,...$n)
  正则分组字符串,以1开始
  6. $-,$+
  组匹配的开始与结束位置,n表示第几组,从0开始。0表示整个匹配
  7. $+
  与搜索模式相匹配的最后一个模式
  以下为例子

$_ = 'ABcde123D';
if (/(+)(\d+)/) {
print "\$1:$1,\$2:$2,\$`:$`,\$&:$&,\$':$'\n";
print "entie match $&:start position,$-; end position,$+\n";
print "first group $1:start position,$-; end position,$+\n";
print "second group $2:start position,$-; end position,$+\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
页: [1]
查看完整版本: perl正则表达式中的特殊变量