Rubyでは値$ 1、$ 2、$ '、$ `は何を意味しますか?Rubyの番号付きグローバル変数は何ですか
答えて
をもたらすであろう。それはだが、Rubyは当初、Perlのから構文の多くを持ち上げます主に今までにそれを乗り越えています:)。など$1
、$2
、正規表現の中括弧のキャプチャを参照してください:/a(.)b(.)c/
与え、$1
はa
とb
と$2
b
とc
間の文字間の文字になります。 $`
と$'
は、正規表現全体(それ自体は$&
)に一致する文字列の前後の文字列をそれぞれ意味します。
歴史的にしか実際には、これらにはある意味があります。 perldoc perlvar
で見つけることができます。これは一般に、Perl変数の意図されたニーモニックと履歴を文書化するうえで優れており、主にRubyのグローバルにも適用されます。番号付きキャプチャは、キャプチャ逆参照正規表現構文(\1
、\2
など)の置き換えです。 Perlは、3.xバージョンのどこかで前者から後者に切り替えました。なぜなら、正規表現以外の逆参照構文を使用すると解析が複雑すぎるからです。 (Perl 5が巡回するまでには、パーサーは文法が再び利用できるように十分に書き直されており、すぐに参照/ "ポインタ"のために再利用されていた)Rubyは代わりに名前引用文:
を使用した。 Smalltalkスタイル; RubyはSmalltalkスタイルのオブジェクト指向でPerlに類似していたので、これは言語的に意味がありました)。$&
も同様です。歴史的な正規表現の構文では単に&
です(ただし、置換の一部であるため、代わりに$&
という変数になりました)。 $`
と$'
は、一致した文字列からの "back-quote"と "forward-quote"の両方の "cutesy"です。
非番のものがここに記載されています:
http://www.zenspider.com/Languages/Ruby/QuickRef.html#19
$1, $2 ... $N
は、正規表現のキャプチャグループでの試合を参照してください。だから、
:
"ab:cd" =~ /([a-z]+):([a-z]+)/
は、彼らが(ちょうどPerlでのように、最新のパターンマッチからのキャプチャだ
$1 = "ab"
$2 = "cd"
コロンの後に式の中に括弧([)がないようです。 "ab:cd" =〜/([a-z] +):([a-z] +)/ –
- 1. Rubyグローバル変数ダブルドル記号
- 2. Rubyは番号付きの変数を動的に割り当てます
- 3. Rubyイテレータのメソッド番号付け配列
- 4. Rubyのグローバル変数を継承できますか?
- 5. Thriftパラメータの番号付けの目的は何ですか?
- 6. ブートストラップスライダリンク番号付きスライド番号
- 7. GVRSceneオブジェクトの「スタック番号」と「スライス番号」は何ですか?
- 8. JavaScriptのグローバル変数とウィンドウ変数は何ですか?
- 9. クラス変数とグローバル変数の違いは何ですか?
- 10. 番号付きURL
- 11. SAS - 番号付き範囲の文字変数リストの作成?
- 12. rubyのCSV.open()の2番目のパラメータ/引数は何ですか?
- 13. ファイルのシリアル番号は何ですか?
- 14. SIGPOLLのバンド番号は何ですか?
- 15. チャンククエリ内のグローバル行番号
- 16. Androidの番号付きチェックボックス
- 17. PHP:(カンマ付き)数場合は、(ポイントで)右の番号形式に変換
- 18. 「*」(ワイルドカード)バージョン番号の.NETの数式は何ですか?
- 19. データベース番号の自動番号付けまたはカスタム番号
- 20. IPythonプロンプト番号は何ですか?
- 21. マルチキャストポート番号とは何ですか?
- 22. グローバル変数を関数に渡す理由は何ですか?
- 23. 番号付きファイル名でbashでファイルの名前を変更
- 24. Markdown/Rdiscountの番号付き見出しは可能ですか?
- 25. 番号付き投票
- 26. スクリーンスクレープページ番号付きデータ
- 27. DOSBOX0.74番号インジケータ付きオーバーレイ
- 28. ランダム番号ジェネレーター付きボタン
- 29. Debianパッケージリスト(バージョン番号付き)
- 30. PHP JSON番号付きデコード
Rubyの開発者は、わかりやすい変数名を選んでいると思っていると思います。 – aroth
あなたは実際に彼らのためにlwallを責めなければなりません。 RubyはPerlからそれらをインポートしました。 – geekosaur
@geekosaur、必ずしもそうではありませんが、私がラリーウォールがawkからそれらをインポートしたことを覚えている限り。 Rubyistは "英語"を要求した後に$ '、$ PREMATCHを$ 'に$ POSTMATCHを使用できます。 – Arie