Ruby Tips!

RubyのTipsを紹介します

2014-03-22から1日間の記事一覧

文字列が複数の正規表現にすべてマッチするか判定する

文字列が複数の正規表現にすべてマッチするか判定する決まった方法は存在しない。 簡単でわかりやすいのは、正規表現によるマッチを複数行い、andで繋げてしまう方法だ。 str = "abcdefghi" p /abc/ =~ str and /def/ =~ str and /ghi/ =~ str #=> 0 Array#f…

Array#uniqで配列から重複する要素を取り除く

Array#uniqは配列から重複した要素を取り除いた新しい配列を返す。 新しい配列を返すのではなく、破壊的に配列から重複した要素を取り除くArray#uniq!もある。 p [5, 1, 2, 4, 3, 1, 2, 5, 3, 5].uniq #=> [5, 1, 2, 4, 3] a = [4, 3, 4, 5, 3, 2, 5, 4, 1, …

正規表現のメタ文字をエスケープする

文字列の中で正規表現で特別な意味を持つメタ文字をバックスラッシュでエスケープするにはRegexp.quoteまたはRegexp.escapeを使って以下のようにする。 p Regexp.quote('...') #=> "\\.\\.\\." p Regexp.escape('^$') #=> "\\^\\$" これらのメソッドはメタ文…

文字列が空行を含むか判定する

文字列が空行もしくは空行を含むか判定するには、正規表現を使って以下のようする。 空行は空文字列か改行のみで構成される行とする。 p /^$/ =~ "" #=> 0 p /^$/ =~ " " #=> nil p /^$/ =~ "\n" #=> 0 p /^$/ =~ "abc" #=> nil p /^$/ =~ "abc\n" #=> nil p…

ファイルの情報を変更する

時刻 ファイルのアクセス時刻(atime)、更新時刻(mtime)を設定するにはFile.utimeを使う。 atime = mtime = Time.now File.utime(atime, mtime, "hoge.txt") これらの時刻を現在時刻に設定するのであれば、FiletUtils.touchも利用できる。 require 'filetutil…