誰でも私に次のことを説明することができますRubyコードは何ですか?この単純なコードは何をしますか?
VARIABLE.scan /\((.+)\)$/
P.S. VARIABLE='aa'
場合
VARIABLE=4
の場合は、私が[]
を持って、私はコードが何をするん[]
だ???
誰でも私に次のことを説明することができますRubyコードは何ですか?この単純なコードは何をしますか?
VARIABLE.scan /\((.+)\)$/
P.S. VARIABLE='aa'
場合
VARIABLE=4
の場合は、私が[]
を持って、私はコードが何をするん[]
だ???
/\((.+)\)$/
$
は、行末アンカーです。最も外側の()
のペアはエスケープされるため、文字列のリテラルカッコと一致します。 .+
は1つ以上の文字と一致します。
ので、正規表現は次のように、その中に少なくとも1つの文字と括弧のグループで終わる文字列に一致します。
qdqsqsddq(1)
sqkldj(azeazeza)
と、そのグループ内のテキストをキャプチャします。ストリングスルー
(その有用性は少し疑問があるので、それはまた、qsd(qsdq(qsdq)
と一致し、その場合には、「戻る」qsdq(qsdq
ことに留意されたい。)
/ # Regex delimiter
\( # Match "("
(.+) # Match and capture one or more (+) characters (.), except newlines
\) # Match ")"
$ # Match the end of the line (before any newlines, if present)
/ # Regex delimiter
.scan()
検索及び配列にすべての一致結果を加算。
したがって、実際には、行内の最初のカッコから始まり、行末の閉じ括弧まで、複数行の文字列内のすべての行の配列を提供します。
もう一つは、他の人の投稿に追加する:
If VARIABLE=4, I got []
これは、実際に例外をスローします。 VARIABLE = "4"(注:string。Fixnumにはこのようなメソッドはありません)が必要です。
私もいくつかの例に置く:
"(4)".scan /\((.+)\)$/ # -> [["4"]]
"(42342)".scan /\((.+)\)$/ # -> [["42342"]]
"abracadabra (42342)".scan /\((.+)\)$/ # -> [["42342"]]
"abracadabra (42342) (23)".scan /\((.+)\)$/ # -> [["42342) (23"]].
# The regex do not match new lines by default.
"(4)\n(5)\n".scan /\((.+)\)$/ # -> [["4"], ["5"]].
"(4)\n(5)\n".scan /\((.+)\)$/m # -> [["4)\n(5"]]
トライVARIABLEを=(4) – prusswan
あなたはスキャン()メソッドが何をするのか説明できますか? –
http://www.ruby-doc.org/core-1.9.3/String.html#method-i-scan – prusswan