def test_variables_can_also_be_used_to_access_captures assert_equal "Gray, James", "Name: Gray, James"[/(\w+), (\w+)/] assert_equal "Gray", $1 assert_equal "James", $2 end
问题: 上面的$1,$2是怎么回事,为什么直接取到值了?
$1 表示正则里面第一个括号匹配到的内容,$2 就是第二个括号的
这是基础问题,看完任意一本 ruby 方面的书都能找到答案的。 ps. Gray James 是大牛哇,楼主不要黑他... https://twitter.com/#!/jeg2
同意@hooopo 楼主需要系统的看一下 Ruby 的书,打打基础~,一遇到基础问题直接就发问的话,你会少了很多探究 ruby 的乐趣!
@skandhas 恩,我也找呢。ruby 挺多地方很特别,不系统看一下,只是看代码,貌似不是很好理解啊。
@hooopo 我在做他弄的那个 koans 的通过测试学习 ruby 的东西,挺有意思的。
#4 楼 @mobiwolf "双飞燕"或是“镐头书”最少得系统的看一本。 :>
@skandhas 镐头书听过,但是双飞燕不知道是何物?另外,您有 pdf 版本的吗?我想先看看,有点等不及网络订的,我之前订的是元编程。感觉不适合现阶段看。
双飞燕就是 matz 写的那本。因为封面有两只鸟~ 故得此谐名。 中文: http://product.china-pub.com/129895 英文: http://product.china-pub.com/39849
中英文都有电子 f 版~ 网上挺多 :>
1.9 下面的正则还能给 group 匹配到的内容声明变量名