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

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

4

2 回答 2

1

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

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

于 2013-03-31T16:22:19.960 回答
1

在此处发布问题之前,您应该真正阅读有关 ruby​​ 正则表达式的最低要求,但这是为了帮助您入门:

=~ is the match operator similar to the match operator in perl
$~ is an array holding the various elements of the match
于 2013-03-31T16:23:00.580 回答