Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
September 2025以降、この機能は最新のバージョンの端末およびブラウザーで動作します。古い端末やブラウザーでは動作しないことがあります。
修飾子は、正規表現の特定の部分のフラグ設定を上書きします。これは、特定の正規表現構文要素の意味を変更するフラグを有効または無効にするために使用できます。これらのフラグは i, m, s です。
メモ: JavaScript には、パターンが修飾子グループの中に置かれる「境界付き」の修飾子形式しかありません。修飾子に対応している他のほとんどの言語には、「境界なし」の形式があり、この形式では、修飾子は最も近い包含グループが終わるまで適用されます。
有効にするフラグの文字列です。 i、m、s を任意に組み合わせて含まれています。
flags2 省略可無効にするフラグの文字列です。i、m、s を任意に組み合わせることができますが、 flags1 に含まれるフラグは含めることはできません。
pattern論理和を含む、正規表現リテラルで使用できる何らかの文字で構成されるパターンです。
一部のフラグは、正規表現の構文要素の意味を変更します。
これらの変更を正規表現パターンの特定の部分でのみ効果にしたい場合があります。その場合は、その部分を修飾子で囲みます。例えば、次のようにします。
この正規表現では、 i フラグはパターンの Hello 部分に対してのみ有効です。 world 部分は大文字と小文字が区別されます。したがって、 Hello world、hello world、HELLO world には一致しますが、 HELLO WORLD には一致しません。 i フラグをグローバルに有効にして、 world 部分に対して無効にすることで、次の式と同等になります。
flags1 および flags2 引数には、i、m、s を任意に組み合わせて含めることができます。ただし、 flags1 と flags2 では、フラグはすべて固有のものである必要があります。つまり、フラグを 2 回有効または無効にしたり、フラグを有効にしてすぐに無効にしたりすることはできません。
引数 flags1 および flags2 はオプションですが、少なくとも 1 つは空ではない必要があります。 (?flags1-:pattern) は、フラグのみを有効にする修飾子です((?flags1:pattern) と同じです)。 (?-flags2:pattern) は、フラグのみを無効にする修飾子です。 (?:pattern) は単なる非キャプチャグループとなり、 (?-:pattern) は構文エラーとなります。
それ以外のフラグはこの修飾子では意味を成さないため、記載すると構文エラーになります。
以下の正規表現は、複数行の文字列の書式を定義します。最初の ^ は、(?-m:) 修飾子の中に含まれているため、入力文字列全体の先頭を表しますが、それ以外の ^ 文字はすべて行の先頭を表します。
foo または bar という変数宣言をすべて探しているとします(これらは不適切な名前だからです)。この単語は、大文字でも小文字でも現れますが、キーワードは常に小文字であることがわかっているため、次のようにすることができます。
| ECMAScript® 2027 Language Specification # prod-RegularExpressionModifiers |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。