ruby局部域变量

一、$_

 

gets或readline最后读入的字符串。若遇到EOF则为nil。该变量的作用域是局部域。

 

 

irb(main):006:0> $_   
=> nil   
irb(main):007:0> gets   
foobar   
=> "foobar\n"   
irb(main):008:0> $_   
=> "foobar\n"

 

二、$~

 

 

在当前作用域中,最后一次匹配成功的相关信息(MatchData对象-为处理与正则表达式的匹配过程相关的信息而设置的类)。

可以使用$~[n]的形式从该数据中抽取第n个匹配结果($n)。相当于是$1,$2...

等同于Regexp.last_match。

 

 

irb(main):012:0> $~   
=> #<MatchData "foobar" 1:
"foo" 2:"bar" 3:nil>   
irb(main):026:0> $1   
=> "foo"   
irb(main):027:0> $~[1]   
=> "foo" 
 

三、$+

 

在当前作用域中,正则表达式最后一次匹配成功的字符串部分中,与最后一个括号相对应的那部分字符串。若最后的匹配失败则为nil。在多项选择型匹配模型中,若您无法断定是哪个部分匹配成功时,该变量将会非常有用。

 

 

irb(main):029:0> $+   
=> "bar" 
 

 

 

 

 

 

你可能感兴趣的:(正则表达式,Ruby)