string=http://abc.com.vn/12345
string =~ /.*\/([0-9]+)/
number = $~[1]
使用 Ruby 正则表达式的上述代码行,变量“number”将具有值“12345”。但是,我不清楚上面使用的 ~ /.*/([0-9]+)/ 和 $~[1] 的含义。你能帮我解释一下吗。非常感谢。
string=http://abc.com.vn/12345
string =~ /.*\/([0-9]+)/
number = $~[1]
使用 Ruby 正则表达式的上述代码行,变量“number”将具有值“12345”。但是,我不清楚上面使用的 ~ /.*/([0-9]+)/ 和 $~[1] 的含义。你能帮我解释一下吗。非常感谢。
根据 Ruby Doc,$~
全局变量等同于last_match
方法。来源。
上一行检查存储在其中的字符串与右侧的正则表达式=~ /.*\/([0-9]+)/
之间是否匹配。将返回该字符串中匹配或不匹配的数字位置。string
=~
nil
在此处发布问题之前,您应该真正阅读有关 ruby 正则表达式的最低要求,但这是为了帮助您入门:
=~ is the match operator similar to the match operator in perl
$~ is an array holding the various elements of the match