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

在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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值