-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 に答える