修飾子の種類と指定方法

広告

修飾子を使い方を見ていく前に、修飾子の指定方法と種類について確認しておきます。修飾子を指定する場合は次の書式となります。

/パターン/修飾子

正規表現オブジェクトを作成するための「//」の2番目の「/」の次に修飾子を指定します。例えば「/i」修飾子を指定する場合は次のようになります。

/パターン/i

また修飾子は複数指定することが可能です。複数指定する場合は続けて記述して下さい。例えば「/i」修飾子と「/x」修飾子を同時に指定する場合は次のようになります。

/パターン/ix

複数の修飾子が記述された時、修飾子が記述された順番は関係ありません。どのような順番で記述しても同じ結果となります。

「compile」メソッド及び「new」メソッド

Regexpクラスで用意されているクラスメソッドの「compile」メソッド又は「new」メソッドを使って正規表現オブジェクトを作成する場合はメソッドの引数に修飾子を指定できます。(メソッドそのものについては「Regexpクラス」を参照して下さい)。

Regexp.new(string[, option[, code]])
Regexp.compile(string[, option[, code]])

指定可能な修飾子は次の3つです。

Regexp::IGNORECASE    # /i オプション
Regexp::MULTILINE     # /m オプション
Regexp::EXTENDED      # /x オプション

実際には次のように記述します。

reg = new Regexp.new("pattern", Regexp::MULTILINE)

論理和(|)を使って複数の修飾子を同時に指定することも可能です。

reg = new Regexp.new("pattern", Regexp::MULTILINE | Regexp::EXTENDED)

修飾子の種類

修飾子として用意されているものは次の通りです。

修飾子 意味
/i大文字と小文字を区別せずにマッチを行う
/o式展開を一度だけ行う
/xパターンの中の空白やコメントを無視する
/m複数行モード。メタ文字(.)が改行にもマッチする
/n文字コードをNONE(ASCII)
/e文字コードをEUC-JP
/s文字コードをShift_JIS
/u文字コードをUTF-8

この中で文字コードを表す「/n」「/e」「/s」「/u」の各修飾子については「Ruby正規表現における日本語の扱い」を参照して下さい。

では次のページから使い方を確認していきます。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)