RegexOptions 列挙型

定義

正規表現オプションを設定するために使用する列挙値を提供します。Provides enumerated values to use to set regular expression options.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

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

フィールド

Compiled 8

正規表現をコンパイルしてアセンブリを作成することを指定します。Specifies that the regular expression is compiled to an assembly. これにより実行速度は速くなりますが、起動にかかる時間は長くなります。This yields faster execution but increases startup time. この値は、Options メソッドを呼び出すときには CompileToAssembly(RegexCompilationInfo[], AssemblyName) プロパティに割り当てないでください。This value should not be assigned to the Options property when calling the CompileToAssembly(RegexCompilationInfo[], AssemblyName) method. 詳細については、トピック「正規表現のオプション」の「コンパイルされた正規表現」を参照してください。For more information, see the "Compiled Regular Expressions" section in the Regular Expression Options topic.

CultureInvariant 512

言語の違いが無視されるように指定します。Specifies that cultural differences in language is ignored. 詳細については、トピック「正規表現のオプション」の「インバリアント カルチャを使用した比較」を参照してください。For more information, see the "Comparison Using the Invariant Culture" section in the Regular Expression Options topic.

ECMAScript 256

式の ECMAScript 準拠の動作を有効にします。Enables ECMAScript-compliant behavior for the expression. この値は、必ず IgnoreCaseMultilineCompiled の各値と組み合わせて使用します。This value can be used only in conjunction with the IgnoreCase, Multiline, and Compiled values. その他の値と組み合わせて使用すると、例外が発生します。The use of this value with any other values results in an exception.

ECMAScript オプションの詳細については、トピック「正規表現のオプション」の「ECMAScript 一致の動作」セクションを参照してください。For more information on the ECMAScript option, see the "ECMAScript Matching Behavior" section in the Regular Expression Options topic.

ExplicitCapture 4

明示的に名前または番号を指定された (?<name>...) の形式のグループだけが有効なキャプチャであることを指定します。これにより、不恰好な表現 (?:...) を使用しなくても、名前のないかっこが非キャプチャ グループとして機能するようになります。詳細については、トピック「正規表現のオプション」の「明示的なキャプチャのみ」を参照してください。Specifies that the only valid captures are explicitly named or numbered groups of the form (?<name>...). This allows unnamed parentheses to act as noncapturing groups without the syntactic clumsiness of the expression (?:...). For more information, see the "Explicit Captures Only" section in the Regular Expression Options topic.

IgnoreCase 1

検索時に大文字と小文字を区別しないことを指定します。Specifies case-insensitive matching. 詳細については、トピック「正規表現のオプション」の「大文字と小文字を区別しない一致」を参照してください。For more information, see the "Case-Insensitive Matching " section in the Regular Expression Options topic.

IgnorePatternWhitespace 32

パターンからエスケープが解除された空白を削除し、# でマークされたコメントを有効にします。Eliminates unescaped white space from the pattern and enables comments marked with #. ただしこの値は、個々の正規表現の言語要素の開始を示す文字クラス、数値の量指定子、またはトークンに影響を与えることも、これらの中の空白を削除することもありません。However, this value does not affect or eliminate white space in character classes, numeric quantifiers, or tokens that mark the beginning of individual regular expression language elements. 詳細については、「正規表現のオプション」の記事の「空白を無視」を参照してください。For more information, see the "Ignore White Space" section of the Regular Expression Options article.

Multiline 2

複数行モードを指定します。Multiline mode. ^ と $ の意味を変更して、文字列全体の先頭と末尾だけでなく、任意の行の先頭と末尾にもそれぞれが一致するようにします。Changes the meaning of ^ and $ so they match at the beginning and end, respectively, of any line, and not just the beginning and end of the entire string. 詳細については、トピック「正規表現のオプション」の「複数行モード」を参照してください。For more information, see the "Multiline Mode" section in the Regular Expression Options topic.

None 0

オプションが何も設定されないことを指定します。Specifies that no options are set. 正規表現エンジンの既定の動作の詳細については、トピック「正規表現のオプション」の「既定のオプション」を参照してください。For more information about the default behavior of the regular expression engine, see the "Default Options" section in the Regular Expression Options topic.

RightToLeft 64

検索が左から右ではなく右から左に行われるように指定します。Specifies that the search will be from right to left instead of from left to right. 詳細については、トピック「正規表現のオプション」の「右から左モード」を参照してください。For more information, see the "Right-to-Left Mode" section in the Regular Expression Options topic.

Singleline 16

単一行モードを指定します。Specifies single-line mode. \n 以外の任意の文字ではなく、すべての文字と一致するようにピリオド (.) の意味を変更します。Changes the meaning of the dot (.) so it matches every character (instead of every character except \n). 詳細については、トピック「正規表現オプション」の「単一行モード」を参照してください。For more information, see the "Single-line Mode" section in the Regular Expression Options topic.

次の例では、2つの正規表現を定義しています。この式では、テキスト内の連続する単語を識別しますが、異なる RegexOptions 値を使用してインスタンスThe following example defines two regular expressions that identify repeated words in text but that are instantiated using different RegexOptions values. 最初の正規表現では、大文字と小文字が区別されません。単語が前の単語と同一かどうかを判断する場合、case は無視されます。The first regular expression is case-insensitive; case is ignored when determining whether a word is identical to the preceding word. 2番目の正規表現では、大文字と小文字が区別されます。単語は、前の単語の大文字と小文字の区別を完全に一致させる必要があります。The second regular expression is case-sensitive; a word must match the case of the preceding word exactly to be considered a duplicate.

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 クラスの次のメンバーのパラメーターとして指定できます。A RegexOptions value can be provided as a parameter to the following members of the Regex class:

RegexOptions 値は、RegexCompilationInfo コンストラクターのパラメーターとして指定することも、RegexCompilationInfo.Options プロパティに直接割り当てることもできます。A RegexOptions value can also be supplied as a parameter to the RegexCompilationInfo constructor, or it can be assigned directly to the RegexCompilationInfo.Options property. その後、結果として得られる RegexCompilationInfo オブジェクトは、Regex.CompileToAssembly メソッドの呼び出しで使用されます。The resulting RegexCompilationInfo object is then used in the call to the Regex.CompileToAssembly method.

RegexOptions 列挙型のメンバー (特に、ExplicitCaptureIgnoreCaseMultiline、および Singleline メンバー) によって提供されるいくつかのオプションは、正規表現パターンのインラインオプション文字を使用して指定できます。Several options provided by members of the RegexOptions enumeration (in particular, by its ExplicitCapture, IgnoreCase, Multiline, and Singleline members) can instead be provided by using an inline option character in the regular expression pattern. 詳細については、「正規表現のオプション」を参照してください。For details, see Regular Expression Options.

適用対象

こちらもご覧ください