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