【Node.js24.x】RegExp::dotAllプロパティの使い方
dotAllプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
dotAllプロパティは、RegExp(正規表現)オブジェクトがdotAllフラグ、つまりsフラグを持つかどうかを示すブール値を保持するプロパティです。このプロパティは、正規表現のインスタンスに属する読み取り専用のプロパティであり、その値は正規表現が作成されるときに決定されます。
正規表現において、通常、ドット記号(.)は改行文字(\n、\r、\u2028、\u2029)を除く任意の単一文字に一致します。しかし、sフラグが正規表現に設定されている場合、このdotAllモードが有効になり、ドット記号(.)は改行文字を含むすべての単一文字に一致するようになります。これにより、複数行にまたがるテキストの中から特定のパターンを見つけ出したい場合に、より柔軟で強力なマッチングが可能になります。例えば、HTMLやXMLドキュメントのように複数行にわたる構造を持つ文字列に対して、開始タグから終了タグまでの全体の内容を抽出したい場合などに、sフラグを使用することで、途中に改行文字があっても正しくマッチさせることができます。
sフラグは、正規表現リテラルを作成する際に/pattern/sのようにパターンに続けて記述するか、またはnew RegExp('pattern', 's')のようにRegExpコンストラクタを使用する際に第二引数のフラグ文字列にsを含めることで設定できます。このdotAllプロパティの値がtrueであればsフラグが有効であり、falseであれば無効であることを示します。システムエンジニアを目指す初心者の方にとって、正規表現はテキスト処理の強力なツールであり、このdotAllプロパティとsフラグの挙動を理解することは、複雑な文字列操作を行う上で非常に重要です。
構文(syntax)
1const regex = /pattern/s; 2regex.dotAll;
引数(parameters)
引数なし
引数はありません
戻り値(return)
boolean
正規表現リテラルに s フラグが設定されているかどうかを示す真偽値です。s フラグが設定されている場合、ドット (.) は改行文字 (\n) にもマッチするようになります。