Dre*_*rew 6 ruby regex operators
除了下面两个语句的编码风格之外还有什么区别吗?
/regex/ =~ "some_string_with_regex"
"some_string_with_regex" =~ /regex/
是的,有区别.如http://www.ruby-doc.org/core/classes/Regexp.html#M001232所述
如果
=~与具有命名捕获的正则表达式文字一起使用,则捕获的字符串(或nil)将分配给由捕获名称命名的局部变量.
/(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/ =~ "  x = y  "
p lhs    #=> "x" 
p rhs    #=> "y"
Run Code Online (Sandbox Code Playgroud)
...
如果正则表达式位于右侧,则不会进行分配.
"  x = y  " =~ /(?<lhs>\w+)\s*=\s*(?<rhs>\w+)/
p lhs, rhs # undefined local variable
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           335 次  |  
        
|   最近记录:  |