关于正则表达式的$问题

关于正则表达式的$问题 » 社区 | Ruby China

关于正则表达式的$问题

7天前
mobiwolf
Ruby 节点 中发起
最后由 ywjno7天前回复 ,
90次阅读
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是怎么回事,为什么直接取到值了?

截止 7天前, 共收到 9 条回复
Normal_6c5369e0e1aa53683c00434d76019800
huacnlee

1楼, 于7天前回复

$1 表示正则里面第一个括号匹配到的内容,$2 就是第二个括号的

E9ed4664dfd7ea664ccc5813de4d1fd7
hooopo

2楼, 于7天前回复

这是基础问题,看完任意一本ruby方面的书都能找到答案的。

ps. Gray James是大牛哇,楼主不要黑他... https://twitter.com/#!/jeg2

2aecf26411e58c87df4625b7ff1ae5d8
skandhas

3楼, 于7天前回复

同意@hooopo 楼主需要系统的看一下Ruby的书,打打基础~,一遇到基础问题直接就发问的话,你会少了很多探究ruby的乐趣!

A937a8ae918218d18f8b3bba76025dd5
mobiwolf

4楼, 于7天前回复

@skandhas 恩,我也找呢。ruby挺多地方很特别,不系统看一下,只是看代码,貌似不是很好理解啊。

A937a8ae918218d18f8b3bba76025dd5
mobiwolf

5楼, 于7天前回复

@hooopo 我在做他弄的那个koans的通过测试学习ruby的东西,挺有意思的。

2aecf26411e58c87df4625b7ff1ae5d8
skandhas

6楼, 于7天前回复

#4楼 @mobiwolf "双飞燕"或是“镐头书” 最少得系统的看一本。 :>

A937a8ae918218d18f8b3bba76025dd5
mobiwolf

7楼, 于7天前回复

@skandhas 镐头书听过,但是双飞燕不知道是何物?另外,您有pdf版本的吗?我想先看看,有点等不及网络订的,我之前订的是元编程。感觉不适合现阶段看。

2aecf26411e58c87df4625b7ff1ae5d8
skandhas

8楼, 于7天前回复

双飞燕就是matz写的那本。因为封面有两只鸟~ 故得此谐名。

中文:

http://product.china-pub.com/129895

英文:

http://product.china-pub.com/39849

中英文都有电子f版~ 网上挺多 :>

5db58542c8ae4de9a4593cf0a0e1b3a4
ywjno

9楼, 于7天前回复

1.9下面的正则还能给group匹配到的内容声明变量名

原文地址:https://www.cnblogs.com/lexus/p/2400639.html