Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Regexpクラス > compile

singleton method Regexp.compile

compile(string, option = nil, code = nil) -> Regexp
new(string, option = nil, code = nil) -> Regexp

文字列 string をコンパイルして正規表現オブジェクトを生成して返します。

第一引数が正規表現であれば第一引数を複製して返します。第二、第三引数は警告の上無視されます。

[PARAM] string:
正規表現を文字列として与えます。
[PARAM] option:
Regexp::IGNORECASE, Regexp::MULTILINE, Regexp::EXTENDED の論理和を指定します。 Fixnum 以外であれば真偽値の指定として見なされ 、真(nil, false 以外)であれば Regexp::IGNORECASE の指定と同じになります。
[PARAM] code:
この引数が与えられた場合は $KCODE の値にかかわらず、指定された文字コードでマッチを行います。 文字コードは $KCODE への代入と同様に文字列引数の最初の一文字で決定されます。
[EXCEPTION] RegexpError:
正規表現のコンパイルに失敗した場合発生します。
str = "This is Regexp"
t1 = Regexp.compile("this is regexp", Regexp::IGNORECASE)
t1.match(str)
puts $~ #=> This is Regexp

t2 = Regexp.compile('
      this         # ここは使用されない
      \ is
      \ regexp     # ここも使用されない
', Regexp::EXTENDED | Regexp::IGNORECASE)
t2.match(str)
puts Regexp.last_match #=> This is Regexp

str = "ふるいけや\nかわずとびこむ\nみずのおと"
t2 = Regexp.compile("ふる.*?と", Regexp::MULTILINE)
puts t2.match(str)[0]  #=> ふるいけや
                       #=> かわずと

[SEE_ALSO] $KCODE

class Regexp