RegexOptions 列挙型

定義

正規表現オプションを設定するために使用する列挙値を提供します。

この列挙体には FlagsAttribute 属性があり、そのメンバー値のビットごとの組み合わせが可能になります。

public enum class RegexOptions
[System.Flags]
public enum RegexOptions
[<System.Flags>]
type RegexOptions = 
Public Enum RegexOptions
継承
RegexOptions
属性

フィールド

Compiled 8

正規表現をコンパイルしてアセンブリを作成することを指定します。 これにより実行速度は速くなりますが、起動にかかる時間は長くなります。 この値は、Options メソッドを呼び出すときには CompileToAssembly(RegexCompilationInfo[], AssemblyName) プロパティに割り当てないでください。 詳細については、「正規表現のオプション」の記事の「コンパイルされた正規表現」を参照してください。

CultureInvariant 512

言語の違いが無視されるように指定します。 詳細については、「正規表現のオプション」の記事の「インバリアント カルチャを使用した比較」を参照してください。

ECMAScript 256

式の ECMAScript 準拠の動作を有効にします。 この値は、必ず IgnoreCaseMultilineCompiled の各値と組み合わせて使用します。 この値を他の値と組み合わせて使用すると、例外が発生します。

ECMAScript オプションの詳細については、「正規表現のオプション」の記事の「ECMAScript 一致の動作」を参照してください。

ExplicitCapture 4

明示的に名前または番号を指定された (?<name>...) の形式のグループだけが有効なキャプチャであることを指定します。これにより、不恰好な表現 (?:...) を使用しなくても、名前のないかっこが非キャプチャ グループとして機能するようになります。詳細については、「正規表現のオプション」の記事の「明示的なキャプチャのみ」を参照してください。

IgnoreCase 1

検索時に大文字と小文字を区別しないことを指定します。 詳細については、「正規表現のオプション」の記事の「大文字と小文字を区別しない一致」を参照してください。

IgnorePatternWhitespace 32

パターンからエスケープが解除された空白を削除し、# でマークされたコメントを有効にします。 ただしこの値は、個々の正規表現の言語要素の開始を示す文字クラス、数値の量指定子、またはトークンに影響を与えることも、これらの中の空白を削除することもありません。 詳細については、「正規表現のオプション」の記事の「空白を無視」を参照してください。

Multiline 2

複数行モードを指定します。 ^ と $ の意味を変更して、文字列全体の先頭と末尾だけでなく、任意の行の先頭と末尾にもそれぞれが一致するようにします。 詳細については、トピック「正規表現のオプション」記事の「複数行モード」を参照してください。

None 0

オプションが何も設定されないことを指定します。 正規表現エンジンの既定の動作の詳細については、「正規表現のオプション」の記事の「既定のオプション」を参照してください。

RightToLeft 64

検索が左から右ではなく右から左になされるように指定します。 詳細については、「正規表現のオプション」の記事の「右から左モード」を参照してください。

Singleline 16

単一行モードを指定します。 \n 以外の任意の文字ではなく、すべての文字と一致するようにピリオド (.) の意味を変更します。 詳細については、「正規表現のオプション」の記事の「単一行モード」を参照してください。

次の例では、2つの正規表現を定義しています。これは、テキスト内の連続する単語を識別しますが、異なる値を使用してインスタンス化 RegexOptions 最初の正規表現では、大文字と小文字が区別されません。単語が前の単語と同一かどうかを判断する場合、case は無視されます。 2番目の正規表現では、大文字と小文字が区別されます。単語は、前の単語の大文字と小文字の区別を完全に一致させる必要があります。

using System;
using System.Text.RegularExpressions;

public class Test
{
    public static void Main ()
    {
        // Define a case-insensitive regular expression for repeated words.
        Regex rxInsensitive = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
          RegexOptions.Compiled | RegexOptions.IgnoreCase);
        // Define a case-sensitive regular expression for repeated words.
        Regex rxSensitive = new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",
          RegexOptions.Compiled);

        // Define a test string.        
        string text = "The the quick brown fox  fox jumps over the lazy dog dog.";
        
        // Find matches using case-insensitive regular expression.
        MatchCollection matches = rxInsensitive.Matches(text);

        // Report the number of matches found.
        Console.WriteLine("{0} matches found in:\n   {1}", 
                          matches.Count, 
                          text);

        // Report on each match.
        foreach (Match match in matches)
        {
            GroupCollection groups = match.Groups;
            Console.WriteLine("'{0}' repeated at positions {1} and {2}",  
                              groups["word"].Value, 
                              groups[0].Index, 
                              groups[1].Index);
        }
        Console.WriteLine();
        
        // Find matches using case-sensitive regular expression.
        matches = rxSensitive.Matches(text);

        // Report the number of matches found.
        Console.WriteLine("{0} matches found in:\n   {1}", 
                          matches.Count, 
                          text);

        // Report on each match.
        foreach (Match match in matches)
        {
            GroupCollection groups = match.Groups;
            Console.WriteLine("'{0}' repeated at positions {1} and {2}",  
                              groups["word"].Value, 
                              groups[0].Index, 
                              groups[1].Index);
        }
    }
}
// The example produces the following output to the console:
//       3 matches found in:
//          The the quick brown fox  fox jumps over the lazy dog dog.
//       'The' repeated at positions 0 and 4
//       'fox' repeated at positions 20 and 25
//       'dog' repeated at positions 50 and 54
//       
//       2 matches found in:
//          The the quick brown fox  fox jumps over the lazy dog dog.
//       'fox' repeated at positions 20 and 25
//       'dog' repeated at positions 50 and 54
Imports System.Text.RegularExpressions

Public Module Test

    Public Sub Main()
        ' Define a case-insensitive regular expression for repeated words.
        Dim rxInsensitive As New Regex("\b(?<word>\w+)\s+(\k<word>)\b", _
               RegexOptions.Compiled Or RegexOptions.IgnoreCase)
        ' Define a case-sensitive regular expression for repeated words.
        Dim rxSensitive As New Regex("\b(?<word>\w+)\s+(\k<word>)\b", _
               RegexOptions.Compiled)

        ' Define a test string.        
        Dim text As String = "The the quick brown fox  fox jumps over the lazy dog dog."
        
        ' Find matches using case-insensitive regular expression.
        Dim matches As MatchCollection = rxInsensitive.Matches(text)

        ' Report the number of matches found.
        Console.WriteLine("{0} matches found in:", matches.Count)
        Console.WriteLine("   {0}", text)

        ' Report on each match.
        For Each match As Match In matches
            Dim groups As GroupCollection = match.Groups
            Console.WriteLine("'{0}' repeated at positions {1} and {2}", _ 
                              groups.Item("word").Value, _
                              groups.Item(0).Index, _
                              groups.Item(1).Index)
        Next
        Console.WriteLine()
        
        ' Find matches using case-sensitive regular expression.
        matches = rxSensitive.Matches(text)

        ' Report the number of matches found.
        Console.WriteLine("{0} matches found in:", matches.Count)
        Console.WriteLine("   {0}", text)

        ' Report on each match.
        For Each match As Match In matches
            Dim groups As GroupCollection = match.Groups
            Console.WriteLine("'{0}' repeated at positions {1} and {2}", _ 
                              groups.Item("word").Value, _
                              groups.Item(0).Index, _
                              groups.Item(1).Index)
        Next
        Console.WriteLine()
    End Sub
End Module
' The example produces the following output to the console:
'       3 matches found in:
'          The the quick brown fox  fox jumps over the lazy dog dog.
'       'The' repeated at positions 0 and 4
'       'fox' repeated at positions 20 and 25
'       'dog' repeated at positions 50 and 54
'       
'       2 matches found in:
'          The the quick brown fox  fox jumps over the lazy dog dog.
'       'fox' repeated at positions 20 and 25
'       'dog' repeated at positions 50 and 54

注釈

値は、 RegexOptions クラスの次のメンバーのパラメーターとして指定でき Regex ます。

値は、 RegexOptions コンストラクターにパラメーターとして指定することも、 RegexCompilationInfo プロパティに直接割り当てることもでき RegexCompilationInfo.Options ます。 その後、結果の RegexCompilationInfo オブジェクトがメソッドの呼び出しで使用され Regex.CompileToAssembly ます。

列挙体のメンバーによって提供されるいくつかのオプション RegexOptions (特に、、、 ExplicitCapture IgnoreCase Multiline 、および Singleline メンバー) は、正規表現パターンのインラインオプション文字を使用して指定できます。 詳細については、「 正規表現のオプション」を参照してください。

適用対象

こちらもご覧ください