ruby正则表达式的含义

时间:2013-03-31 16:19:07

标签: ruby expression

string=http://abc.com.vn/12345
string =~ /.*\/([0-9]+)/
number = $~[1]

使用Ruby正则表达式的上述代码行,变量“number”将具有值“12345”。但是,我不清楚上面使用的〜/。* /([0-9] +)/和$〜[1]的含义。能帮我解释一下吗?非常感谢。

2 个答案:

答案 0 :(得分:1)

根据Ruby Doc,$~全局变量等同于last_match方法。 Source

上一行=~ /.*\/([0-9]+)/检查string中存储的字符串与右侧的正则表达式之间是否匹配。 =~将返回该字符串中匹配的数字位置,如果没有匹配则返回nil

答案 1 :(得分:1)

在发布问题之前,你应该真正阅读关于ruby中正则表达式的最小值,但这是为了让你开始:

=~ is the match operator similar to the match operator in perl
$~ is an array holding the various elements of the match