string=http://abc.com.vn/12345
string =~ /.*\/([0-9]+)/
number = $~[1]
使用Ruby正则表达式的上述代码行,变量“number”将具有值“12345”。但是,我不清楚上面使用的〜/。* /([0-9] +)/和$〜[1]的含义。能帮我解释一下吗?非常感谢。
答案 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