Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Regexp::MULTILINE定数の使い方

MULTILINE定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

MULTILINE定数は、Rubyの正規表現において「マルチラインモード」を有効にするためのオプションを表す定数です。この定数は、Regexpクラスに定義されており、主に正規表現の挙動を細かく制御する際に利用されます。

正規表現では通常、文字列の先頭を示す^メタ文字と、文字列の末尾を示す$メタ文字は、検索対象となる文字列全体の先頭または末尾にのみマッチします。これは、たとえ文字列中に改行が含まれていても、文字列全体を一つのまとまりとして扱うためです。しかし、複数行にわたるテキストを扱う場合、各行を個別の単位と見なし、それぞれの行の先頭や末尾に対してこれらのメタ文字を適用したいことがあります。

ここでMULTILINE定数が表す「マルチラインモード」が重要になります。このモードが有効になると、^メタ文字は文字列全体の先頭だけでなく、改行文字\nの直後にもマッチするようになります。同様に、$メタ文字は文字列全体の末尾だけでなく、改行文字\nの直前にもマッチするよう挙動が変化します。これにより、テキスト内の各行を個別の単位として扱い、それぞれの行の先頭や末尾にパターンを適用することが可能になります。

このオプションは、Regexp.newメソッドの第二引数にRegexp::MULTILINEとして渡すことで明示的に指定できます。また、正規表現リテラルを用いる場合は、パターンの最後に/mを付加することでもマルチラインモードを有効にできます。複数行にわたるログファイルや設定ファイルなどから特定の情報を抽出する際に、非常に役立つ機能です。

構文(syntax)

1Regexp.new("pattern", Regexp::MULTILINE)

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer

Regexp::MULTILINE は、正規表現におけるマルチラインモードを有効にするための定数です。この定数は、正規表現のパターンマッチングにおいて、行の開始や終了を文字列全体ではなく、各行の先頭と末尾として扱うよう指示します。

関連コンテンツ