`
weihe6666
  • 浏览: 441873 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

perl-锚位

    博客分类:
  • Perl
阅读更多
perl-锚位


默认情况下,模式匹配的过程开始于待匹配的字符串的开头,如果不相符就一直往字符串后面浮动。但是加入一些锚位,就可以让模式直接匹配字符串的某处。

1)脱字符(^)
  用来标示字符串的开头
2)美元符号($)
  用来标示字符串的结尾
3)单词锚位
  \b是单词边界锚位,它匹配任何单词的首尾
  因此/\bFred\b/课匹配Ferd,但无法匹配frederick alfred。
4)绑定操作符 =~
  默认情况下模式匹配的对象是$_,绑定操作符 =~ 则能让Perl拿右边的模式来匹配左边的字符串,而非匹配$_,
my $some_other = " I dream of betty rubble.";
if ($some_other =~ /\bru\b/){
  print "Aye, there's the ru.\n"
}

=~绑定操作符是针对左边的字符串来匹配,若没有绑定操作符,绑定操作符会使用默认的$_来匹配。
5)模式串中的内插
 正则表达式里可以进行双引号形式的内插,但是在模式匹配中也可以内插:
[code = "perl"]
my $what = "larry";

while (<>){
  if (/^($what)/){
  print "We saw $what in beginning of $_;
}
}

6)捕获变量
   捕获功能指的是:把(圆括号中模式所匹配的)部分字符串暂时记下来的能力。
   因为捕获变量存储的都是字符串,所以他们都是标量变量。在Perl中,他们的名字类似 $1、$2、$3....

  [ code = "perl"]
$_ = "Hello there, neighbor";
if (/\s(w+),/){
  print "The word was $1\n";
}

The word was there
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics