質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

2回答

1860閲覧

ソースコードで $` $& といった記号を使われていたのですが、どういう意味なのでしょうか?使われ方は詳細にあり。(正規表現周りで使われてました。)

kento2543

総合スコア163

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

2クリップ

投稿2015/10/02 10:05

$`$& というのがどういう意味で使われているのかがわかりません。

使用されていたコードを抜粋すると以下になります。

$`.strip $&.sub(/^hoge/, "piyo")

正規表現等をつかって、文字列を整形するときにこのコードが使われてました。

どなたかおわかりの方がいらっしゃいましたら、お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

具体的な意味は回答がありましたので省略します。

Rubyには(他の言語でもですが)、オンラインリファレンスがありますので、ざっと見て、どこに何が書いてあるか覚えておいた方が良いです。「Ruby リファレンス」でググると出てきます。
オブジェクト指向スクリプト言語 Ruby リファレンスマニュアル (Ruby 2.2.0)

書いてある具体的な内容は覚える必要は無くて、忘れた都度調べれば良いです。

$&等の特殊変数は、Kernelモジュールの所に記述があるのですが、そんなのは覚えなくても、トップページの「変数と定数」の所をクリックすると、冒頭に

Ruby の変数と定数の種別は変数名の最初の一文字によって、 ローカル変数、 インスタンス変数、 クラス変数、 グローバル変数、 定数 のいずれかに区別されます。 通常の変数の二文字目以降は英数字または _ですが、組み込み変数の一部には 「`$'+1文字の記号」という変数があります(組み込み変数を参照)。変数名 の長さにはメモリのサイズ以外の制限はありません。

と書いてありますので、リンクになっている「組み込み変数」をクリックすると説明のページに飛びます。そこには、

組み込み変数
グローバル変数には Ruby 処理系によって特殊な意味を与えられているものがあります。これらを組み込み変数と呼びます。
詳細は Kernel の特殊変数を参照してください。

と、目的のページにたどり着きます。

とここまで書いて気づきましたが、$&が変数であることを知らないと駄目ですね。トップページからどこへ行けばいいかわからない。
そういう場合は、「Ruby ドキュメント」にリンクのある「るりまサーチ」が良いかもしれません。
Windowsユーザーの場合は、「Rubyリファレンスマニュアル chm版リミックス」のダウンロードをお勧めします。

投稿2015/10/02 12:29

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kento2543

2015/10/02 15:01

ご回答ありがとうございます。 調べ方というところをご教授頂き、参考になりました。 今後、わからないことがでたときに、参照するプロセスをつくっていきたいと思います。
guest

0

ベストアンサー

正規表現でマッチングを判定し、その後の処理で用いる時に使います。

$& 正規表現にマッチした箇所の文字列
$' 正規表現にマッチした箇所より後ろの文字列

下記ページが参考になるかと思います
Rubyの特殊変数一覧
マッチした文字列を取得($&)

投稿2015/10/02 11:24

sakapun

総合スコア888

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kento2543

2015/10/02 12:28

早速ありがとうございます。 まさに求めていた回答です。 これで学習が進められます!有り難う御座いました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問