正規表現のオプション

照合動作に影響を与えるオプションを使用して、正規表現パターンを変更できます。正規表現のオプションは、2 つの基本的な方法のいずれかで設定できます。1 つは、Regex(pattern, options) コンストラクタの options パラメータで指定する方法です。options は、RegexOptions 列挙値のビットごとの OR の組み合わせです。もう 1 つは、インライン グループ化構成体 (?imnsx-imnsx:) またはその他の構成体 (?imnsx-imnsx) を使用して、正規表現パターンの中で設定する方法です。

インライン オプション構成体では、オプションまたはオプション セットの前にマイナス記号 (-) を付けることによって、そのオプションをオフにできます。たとえば、インライン構成体 (?ix-ms) は、IgnoreCase オプションと IgnorePatternWhiteSpace オプションをオンにし、Multiline オプションと Singleline オプションをオフにします。既定では、すべての正規表現のオプションがオフです。

RegexOptions 列挙体のメンバと、それと等しいインライン オプション文字の一覧を次の表に示します。RightToLeft オプション および Compiled オプションは、式全体に適用され、インラインでは使用できません。これらのオプションは、Regex コンストラクタの options パラメータでだけ指定できます。オプション None およびオプション ECMAScript は、インラインでは使用できません。

RegexOption のメンバ インライン文字 説明

None

なし

オプションを設定しないことを指定します。

IgnoreCase

i

大文字小文字を区別せずに照合を行うことを指定します。

Multiline

m

複数行モードを指定します。^ および $ の意味を変更し、文字列の先頭および末尾ではなく、それぞれ、行の先頭および末尾と一致するようにします。

ExplicitCapture

n

(?<name>…) の形式で明示的に名前付けまたは番号付けしたグループだけを有効なキャプチャにするように指定します。これによって、(?:…) という扱いにくい構文を使用せずに、キャプチャしないグループ化を行うときに、かっこを使用できます。

Compiled

なし

正規表現をアセンブリにコンパイルするように指定します。正規表現の Microsoft Intermediate Language (MSIL) コードが生成されます。起動が遅くなりますが、実行は速くなります。

Singleline

s

単一行モードを指定します。ピリオド文字 (.) の意味を変更し、\n 以外のすべての文字ではなく、すべての文字と一致するようにします。

IgnorePatternWhitespace

x

エスケープされない空白をパターンから除外し、シャープ記号 (#) の後ろのコメントを有効にするように指定します。エスケープされる空白文字の一覧については、「文字のエスケープ」を参照してください。文字クラスからは空白が削除されません。

RightToLeft

なし

左から右ではなく、右から左に検索するように指定します。このオプションが付いた正規表現は、開始位置から右方向ではなく左方向に進んでいきます。そのため、開始位置は文字列の先頭ではなく、末尾に指定する必要があります。無限ループが発生する正規表現が作成されないように、このオプションは途中で指定できません。ただし、(?<) 後読み構成体によって、部分式として使用できる類似機能が用意されています。

RightToLeft では、検索の方向だけが変更されます。検索する部分文字列は反転しません。lookahead アサーションおよび lookbehind アサーションは変わりません。lookahead は右方向に検索し、lookbehind は左方向に検索します。

ECMAScript

なし

式に対して ECMAScript 互換の動作が有効になるように指定します。このオプションと組み合わせて使用できるフラグは、IgnoreCase フラグと Multiline フラグだけです。ECMAScript をその他のフラグと共に使用すると、例外が発生します。

CultureInvariant

なし

言語のカルチャの違いを無視するよう指定します。詳細については、「RegularExpressions 名前空間でのカルチャを認識しない操作の実行」を参照してください。

参照

その他の技術情報

正規表現言語要素