« Rubyの正規表現マッチで利用する「$〜」 | メイン | Rubyにおける「バックスラッシュ記法」(1) » |
このブログを書く四元輝博とジョシュア清水が経営する旅行代理店スカイメリカ
ジョシュア清水 自らが操縦する、日本語でのガイドと会話を楽しみながらハワイ島を巡るセスナの旅
このブログを書く四元輝博と共にスカイメリカを経営するハワイ島在住の日本人パイロット、ジョシュア清水のブログ
スカイメリカの共同経営者、シリコンバレー在住の四元輝博によるIT情報・ベンチャー起業に関するブログ
四元輝博によるに 「組み込みJava による M2Mソリューション」に関する調査レポート・サイト
: 個別エントリー・アーカイブ :
p "The quick brown fox" =~ /quick/ #=> 4 p Regexp.last_match[0] #=> "quick"まずは、メタ文字を使用していない例。 文字列「"The quick brown fox"」において 正規表現である「/quick/」 を 「=~」 によってマッチするかどうか判断している。 マッチしていたら、マッチしていた位置を 行頭を「0(ゼロ)」として数えた値を返す。 よって、この例では、「4」となるので それを 「p」メッソドで表示している。 「#」マークから右側はコメント。 「=>」は なくても構わないのだが、 Rubyの世界では実行結果を示す場合にはこのマークをつける慣例になっているようだ。 ここでもこの慣習に習ってつけている。 結果をコメントとして表示している。
p "The quick brown fox" =~ /qu.ck/ #=> 4 p Regexp.last_match[0] #=> "quick"次の例では、任意の 1 文字にマッチする メタ文字「 . (ピリオド or ドット)」を 正規表現の中に使ってみた。 正規表現を「/qu.ck/」としたので、 これは、「qu」で始まり、どんな文字でもいいので1文字あって、 続けて「ck」で終わる5文字の文字列が存在するとマッチすることになる。 だから「quick」に限らず「quock」でも「quAck」でもマッチすることになる。
p "The quick brown fox" =~ /qu..ck/ #=> nil p $& #=> nil今度は、マッチしない例。 「qu」で始まり、どんな文字でもいいので2文字あって、 続けて「ck」で終わる6文字の文字列は、 「"The quick brown fox"」中に見当たらないので 結果が「nil」となっている。 2行目で、 「 $& 」を使っているのは 「 Regexp.last_match[0] 」を用いると スクリプトがエラーで止まってしまうので、 ここでは「 $& 」の方を用いた。
p "The quick brown fox" =~ /q...k/ #=> 4 p $& #=> "quick"この例でも、「q...k」が「quick」にマッチするのがわかる。
p "The quick brown fox" =~ /..i../ #=> 4「..i..」も「quick」にマッチする。
このエントリーのトラックバックURL:
http://www.skymerica.com/blog/yotsumoto/mt/mt-tb.cgi/673