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. SAS - 番号付き範囲の文字変数リストの作成?
- 2. Thriftパラメータの番号付けの目的は何ですか?
- 3. チャンククエリ内のグローバル行番号
- 4. PHP:(カンマ付き)数場合は、(ポイントで)右の番号形式に変換
- 5. データベース番号の自動番号付けまたはカスタム番号
- 6. SIGPOLLのバンド番号は何ですか?
- 7. rubyのCSV.open()の2番目のパラメータ/引数は何ですか?
- 8. 番号付き投票
- 9. 「*」(ワイルドカード)バージョン番号の.NETの数式は何ですか?
- 10. Markdown/Rdiscountの番号付き見出しは可能ですか?
- 11. IPythonプロンプト番号は何ですか?
- 12. Rubyの名前付き引数(名前付きメソッドパラメータ、キーワード引数)の現在の状態は何ですか?
- 13. Cのポインタとグローバル変数の違いは何ですか?
- 14. 番号に番号を付ける?
- 15. Joomla K2は、ページ番号にページ番号を付け加えてページ番号を変更します。
- 16. PHP $ GLOBALS ['variable']の違いは何ですか?グローバル$変数。
- 17. Java - 名前付きHTMLエンティティを番号付きXMLエンティティに変換する
- 18. Rubyグローバル変数、正当な使用
- 19. Vault付きソースのファイルバージョン番号
- 20. cakephpページ番号付きのページ分割
- 21. 自動番号付きリストの作成
- 22. jpページ番号付きのPHP pdo
- 23. Rubyでグローバル変数を削除するには?
- 24. PHPは開始番号に番号を付け加えます。
- 25. Javaのリフレクションを通じて変数variableNamesを持つ変数の変数番号を作成できますか?
- 26. Excel正確な小数点付きの印刷番号セパレータ
- 27. ローカル変数、インスタンス変数、グローバル変数、およびクラス変数の違いは何ですか?
- 28. jQueryページ番号付きHTMLテーブル
- 29. カスタム番号付きリストとCSS
- 30. 郵便番号データ付き都市名
Rubyの開発者は、わかりやすい変数名を選んでいると思っていると思います。 – aroth
あなたは実際に彼らのためにlwallを責めなければなりません。 RubyはPerlからそれらをインポートしました。 – geekosaur
@geekosaur、必ずしもそうではありませんが、私がラリーウォールがawkからそれらをインポートしたことを覚えている限り。 Rubyistは "英語"を要求した後に$ '、$ PREMATCHを$ 'に$ POSTMATCHを使用できます。 – Arie