「るびいメモ」の編集履歴(バックアップ)一覧はこちら

るびいメモ」(2006/11/23 (木) 00:54:20) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

目次 #contents() *rubyユーザーズガイドでのお勉強1 以下は以前作った覚書です。内容は[[本文>http://www.swlab.it.okayama-u.ac.jp/man/ruby/uguide/uguide01.html]]が非常に分かりやすくておすすめです。 **sampleソースの再現性とirbの仕様 色が出ないのはzaurusの仕様か?terminalではどうか? bash-2.05$ ruby -S re_test.rb str> foobar pat> ^fo+ foobar eval.rbも動作が再現しない bash-2.05$ ruby eval.rb のでirbをトライ bash-2.05$ irb irb(main):001:0> print "111!" irbではSTDOUT=>返り値の表示となる。 111!=> nil 文字列は""でくくられて表示される←返り値だから irb(main):002:0> "print '111'" => "print '111' rubyは処理結果が返り値となる irb(main):003:0> 111 => 111 irb(main):004:0> 1+2 => 3 **文字列操作 ダブルクォーテーションとシングルクォーテーションの違い irb(main):005:0> "\n" => "\n" irb(main):006:0> '\n' => "\\n" エスケープを展開するのがダブルクォーテーション 文字列は加算、乗算ができる irb(main):007:0> "foo"+"bar" => "foobar" irb(main):011:0> word = "fo"+"o" => "foo" irb(main):012:0> word = word*2 => "foofoo" #{}で文字列内の式評価 irb(main):008:0> "abc #{5+3}cde" => "abc 8cde" irb(main):009:0> var = "abc" => "abc" irb(main):010:0> "123#{var}456" => "123abc456" 文字列の制御。文字は配列に展開される irb(main):013:0> word[0] => 102 配列の中身は、アスキーコード irb(main):014:0> word[1] => 111 文字列の部分取り出し irb(main):015:0> word[0,1] => "f" 第1引数は位置(0〜)、第2引数は文字数 irb(main):016:0> word[-2,2] => "oo" 文字列の比較 irb(main):017:0> "foo"=="foo" => true irb(main):018:0> "foo"=="bar" => false 等号評価式は"=="。小文字のtrue・falseはv1.1以降で採用 **正規表現 マッチ評価 irb(main):004:0> /fo+/=~"foober" => 0 irb(main):005:0> $& => "foo" 正規表現は/正規表現/で表され、re=~文字列 で評価する 評価の戻り値は、マッチした先頭位置を示す irb(main):006:0> /fo+/=~"berfoober" => 3 マッチ文字列は$&に格納される irb(main):007:0> $& => "foo" 正規表現は1文字の評価 irb(main):023:0> /\d/=~"abc12dbcd555" => 3 irb(main):024:0> $& => "1" 複数文字列の評価は+や*を組み合わせる irb(main):010:0> /\d+/=~"abc123def456gh" => 3 irb(main):011:0> $& => "123" 格納されるのは、最初にマッチした文字列 irb(main):031:0> /.bc/=~"abc12dbcd555" => 0 irb(main):032:0> $& => "abc" gsub!は文字列のマッチ部分の文字を置き換える。文字列.gsub! re,"置き換え文字列" irb(main):033:0> "abc012dbcd555".gsub! /\d/,"*" => "abc***dbcd***" マッチ箇所は6箇所 irb(main):034:0> "abc012dbcd555".gsub! /.bc/,"*" => "*012*d555" 又はの表記"|" irb(main):036:0> "abc012dbcd555".gsub! /bc|db/,"*" => "a*012*cd555" 数字以外\D irb(main):037:0> "abc012dbcd555".gsub! /\D/,"*" => "***012****555" 代替え文字に空文字を送るとマッチの切り取りとなる irb(main):038:0> "abc012dbcd555".gsub! /\D/,"" => "012555" 文字列の整数化.to_i irb(main):040:0> ("abc012dbcd555".gsub! /\D/,"").to_i => 12555 irb(main):041:0> ("bc0124dna-a".gsub! /\D/,"").to_i => 124 irb(main):042:0> ("bc0124dna-a".gsub! /\D/,"") => "0124" 英数以外\W irb(main):043:0> ("bc0124dna-a".gsub! /\W/,"") => "bc0124dnaa" 文字範囲は[]でくくり-でつなげるか,で列記する irb(main):044:0> ("bc0124dna-a".gsub! /a..z/,"") => nil irb(main):045:0> ("bc0124dna-a".gsub! /(a..z)/,"") => nil irb(main):046:0> ("bc0124dna-a".gsub! /[a..z]/,"") => "bc0124dn-" irb(main):047:0> ("bc0124dna-a".gsub! /[a-z]/,"") => "0124-" irb(main):048:0> ("bc0124dna-a".gsub! /[a-z,-]/,"") => "0124"

表示オプション

横に並べて表示:
変化行の前後のみ表示: