正規表現で複数行にわたるテキストを扱う場合、通常の正規表現の設定では改行文字(\\\\n\\\\r)に一致しないため、特定のフラグや構文を使って改行を含むマッチングが必要です。主に以下の2つのアプローチがあります。

1. フラグ(オプション)を使用する

2. 改行を明示的に扱う

3. 複数行モード(/m フラグ)

/m フラグは、^$ が各行の開始や終了に一致するように設定するものです。これは、単に改行に依存する処理に対して有効ですが、. には影響しません。

: 各行の先頭にマッチさせたい場合。

^abc/m

実際の使用例

例えば、次のテキストに対してマッチさせる場合を考えます。

テキスト:

apple
banana
cherry

DotAllモードで全体をマッチさせる

apple.*cherry/s

この場合、/s フラグがあることで、apple から cherry まで全ての文字列がマッチします。

[\\\\s\\\\S] を使って改行を含めたマッチ

apple[\\\\s\\\\S]*cherry

このパターンでも同様に、改行を含むすべての文字がマッチします。