修飾子の種類と指定方法

正規表現にはいくつかの修飾子が用意されています。ここれでは Ruby の正規表現で利用可能な修飾子の種類と指定方法について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 12 日更新)

修飾子の指定方法

修飾子を指定する場合は次の書式となります。

/パターン/修飾子

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

/パターン/i

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

/パターン/ix

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

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

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

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

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

-- --

Ruby の正規表現で利用可能な修飾子の種類と指定方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。