Regex クラス

定義

変更不可の正規表現を表します。

public ref class Regex
public ref class Regex : System::Runtime::Serialization::ISerializable
public class Regex
public class Regex : System.Runtime.Serialization.ISerializable
[System.Serializable]
public class Regex : System.Runtime.Serialization.ISerializable
type Regex = class
type Regex = class
    interface ISerializable
[<System.Serializable>]
type Regex = class
    interface ISerializable
Public Class Regex
Public Class Regex
Implements ISerializable
継承
Regex
派生
属性
実装

次の例では、正規表現を使用して、文字列内の単語が繰り返し出現することを確認します。 正規表現 \b(?<word>\w+)\s+(\k<word>)\b は、次の表に示すように解釈できます。

Pattern 説明
\b 単語の境界で一致を開始します。
(?<word>\w+) 1 つ以上の単語文字を単語の境界まで一致させます。 このキャプチャされたグループ wordに という名前を付けます。
\s+ 1 つ以上の空白文字と一致します。
(\k<word>) という名前 wordのキャプチャされたグループと一致します。
\b ワード境界に一致します。
#using <System.dll>

using namespace System;
using namespace System::Text::RegularExpressions;
int main()
{
   // Define a regular expression for repeated words.
   Regex^ rx = gcnew Regex( "\\b(?<word>\\w+)\\s+(\\k<word>)\\b",static_cast<RegexOptions>(RegexOptions::Compiled | RegexOptions::IgnoreCase) );

   // Define a test string.        
   String^ text = "The the quick brown fox  fox jumps over the lazy dog dog.";

   // Find matches.
   MatchCollection^ matches = rx->Matches( text );

   // Report the number of matches found.
   Console::WriteLine( "{0} matches found.", matches->Count );

   // Report on each match.
   for each (Match^ match in matches)
   {
      String^ word = match->Groups["word"]->Value;
      int index = match->Index;
      Console::WriteLine("{0} repeated at position {1}", word, index);   
   }
}
using System;
using System.Text.RegularExpressions;

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

        // Define a test string.
        string text = "The the quick brown fox  fox jumps over the lazy dog dog.";

        // Find matches.
        MatchCollection matches = rx.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 49 and 53
Imports System.Text.RegularExpressions

Public Module Test

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

        ' Define a test string.        
        Dim text As String = "The the quick brown fox  fox jumps over the lazy dog dog."
        
        ' Find matches.
        Dim matches As MatchCollection = rx.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
    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 49 and 53

次の例は、正規表現を使用して、文字列が通貨値を表すか、通貨値を表す正しい形式であるかを確認する方法を示しています。 この場合、正規表現は、ユーザーの現在のカルチャの NumberFormatInfo.CurrencyDecimalSeparatorCurrencyDecimalDigitsNumberFormatInfo.CurrencySymbolNumberFormatInfo.NegativeSignおよび NumberFormatInfo.PositiveSign プロパティから動的に構築されます。 システムの現在のカルチャが en-US の場合、結果の正規表現は になります ^\s*[\+-]?\s?\$?\s?(\d*\.?\d{2}?){1}$。 この正規表現は、次の表に示すように解釈できます。

Pattern 説明
^ 文字列の先頭から始めます。
\s* 0 個以上の空白文字と一致します。
[\+-]? 正符号または負符号の 0 個または 1 回の出現と一致します。
\s? 0 個または 1 個の空白文字と一致します。
\$? ドル記号の 0 個または 1 回の出現と一致します。
\s? 0 個または 1 個の空白文字と一致します。
\d* 0 個以上の 10 進数と一致します。
\.? 0 または 1 の小数点記号と一致します。
\d{2}? 2 桁の 10 進数の 0 または 1 回に一致します。
(\d*\.?\d{2}?){1} 小数点記号で区切られた整数と小数部のパターンを少なくとも 1 回一致させます。
$ 文字列の末尾と一致します。

この場合、正規表現では、有効な通貨文字列にグループ区切り記号が含まれていないことを前提とし、小数部の数字も、現在のカルチャの プロパティで定義されている小数部の CurrencyDecimalDigits 桁数も含まれていないことを前提としています。

using System;
using System.Globalization;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      // Get the current NumberFormatInfo object to build the regular 
      // expression pattern dynamically.
      NumberFormatInfo nfi = NumberFormatInfo.CurrentInfo;

      // Define the regular expression pattern.
      string pattern; 
      pattern = @"^\s*[";
      // Get the positive and negative sign symbols.
      pattern += Regex.Escape(nfi.PositiveSign + nfi.NegativeSign) + @"]?\s?";
      // Get the currency symbol.
      pattern += Regex.Escape(nfi.CurrencySymbol) + @"?\s?";
      // Add integral digits to the pattern.
      pattern += @"(\d*";
      // Add the decimal separator.
      pattern += Regex.Escape(nfi.CurrencyDecimalSeparator) + "?";
      // Add the fractional digits.
      pattern += @"\d{";
      // Determine the number of fractional digits in currency values.
      pattern += nfi.CurrencyDecimalDigits.ToString() + "}?){1}$";
      
      Regex rgx = new Regex(pattern);

      // Define some test strings.
      string[] tests = { "-42", "19.99", "0.001", "100 USD", 
                         ".34", "0.34", "1,052.21", "$10.62", 
                         "+1.43", "-$0.23" };

      // Check each test string against the regular expression.
      foreach (string test in tests)
      {
         if (rgx.IsMatch(test))
            Console.WriteLine("{0} is a currency value.", test);
         else
            Console.WriteLine("{0} is not a currency value.", test);
      }
   }
}
// The example displays the following output:
//       -42 is a currency value.
//       19.99 is a currency value.
//       0.001 is not a currency value.
//       100 USD is not a currency value.
//       .34 is a currency value.
//       0.34 is a currency value.
//       1,052.21 is not a currency value.
//       $10.62 is a currency value.
//       +1.43 is a currency value.
//       -$0.23 is a currency value.
Imports System.Globalization
Imports System.Text.RegularExpressions

Public Module Example
   Public Sub Main()
      ' Get the current NumberFormatInfo object to build the regular 
      ' expression pattern dynamically.
      Dim nfi As NumberFormatInfo = NumberFormatInfo.CurrentInfo

      ' Define the regular expression pattern.
      Dim pattern As String 
      pattern = "^\s*["
      ' Get the positive and negative sign symbols.
      pattern += Regex.Escape(nfi.PositiveSign + nfi.NegativeSign) + "]?\s?"
      ' Get the currency symbol.
      pattern += Regex.Escape(nfi.CurrencySymbol) + "?\s?"
      ' Add integral digits to the pattern.
      pattern += "(\d*"
      ' Add the decimal separator.
      pattern += Regex.Escape(nfi.CurrencyDecimalSeparator) + "?"
      ' Add the fractional digits.
      pattern += "\d{"
      ' Determine the number of fractional digits in currency values.
      pattern += nfi.CurrencyDecimalDigits.ToString() + "}?){1}$"
      
      Dim rgx As New Regex(pattern)

      ' Define some test strings.
      Dim tests() As String = {"-42", "19.99", "0.001", "100 USD", _
                               ".34", "0.34", "1,052.21", "$10.62", _
                               "+1.43", "-$0.23" }

      ' Check each test string against the regular expression.
      For Each test As String In tests
         If rgx.IsMatch(test) Then
            Console.WriteLine("{0} is a currency value.", test)
         Else
            Console.WriteLine("{0} is not a currency value.", test)
         End If
      Next
   End Sub
End Module
' The example displays the following output:
'       -42 is a currency value.
'       19.99 is a currency value.
'       0.001 is not a currency value.
'       100 USD is not a currency value.
'       .34 is a currency value.
'       0.34 is a currency value.
'       1,052.21 is not a currency value.
'       $10.62 is a currency value.
'       +1.43 is a currency value.
'       -$0.23 is a currency value.

この例の正規表現は動的に構築されているため、現在のカルチャの通貨記号、10 進記号、正符号、負符号が正規表現エンジンによって正規表現言語演算子として誤って解釈される可能性があるかどうかは、デザイン時にはわかりません。 誤った解釈を防ぐために、動的に生成された各文字列を メソッドに Escape 渡します。

注釈

クラスはRegex、.NET Frameworkの正規表現エンジンを表します。 これは、特定の文字パターンを見つけるために大量のテキストをすばやく解析するために使用できます。テキスト部分文字列を抽出、編集、置換、または削除する場合。および を使用して、抽出された文字列をコレクションに追加してレポートを生成します。

注意

特定のパターンに準拠しているかどうかを判断して文字列を検証することが主な目的の場合は、 クラスを System.Configuration.RegexStringValidator 使用できます。

正規表現を使用するには、「正規表現 言語 - クイック リファレンス」に記載されている構文を使用して、テキスト ストリームで識別するパターンを定義します。 次に、必要に応じて オブジェクトを Regex インスタンス化できます。 最後に、正規表現パターンに一致するテキストの置換やパターンの一致の識別など、何らかの操作を実行するメソッドを呼び出します。

注意

一般的な正規表現パターンについては、「正規表現の 」を参照してください。 また、正規表現パターンのオンライン ライブラリ ( Regular-Expressions.info など) も多数あります。

クラスの使用の Regex 詳細については、このトピックの以下のセクションを参照してください。

正規表現の言語について詳しくは、「正規表現言語 - クイック リファレンス」を参照するか、次の資料のいずれかをダウンロードして印刷してください。

Word (.docx) 形式のクイック リファレンス
PDF (.pdf) 形式のクイック リファレンス

Regex メソッドと String メソッド

System.Stringクラスには、テキストとのパターン マッチングを実行するために使用できるいくつかの検索メソッドと比較メソッドが含まれています。 たとえば、、、および String.StartsWith の各メソッドは、String.ContainsString.EndsWith文字列インスタンスに指定した部分文字列が含まれているかどうかを判断しString.IndexOfString.LastIndexOfString.IndexOfAny、および String.LastIndexOfAny メソッドは、文字列内の指定した部分文字列の開始位置を返します。 特定の文字列を検索するときは、 System.String クラスの メソッドを使用します。 文字列内の特定の Regex パターンを検索する場合は、 クラスを使用します。 詳細と例については、「 .NET 正規表現」を参照してください。

解説に戻る

静的メソッドとインスタンス メソッド

正規表現パターンを定義したら、次の 2 つの方法のいずれかで正規表現エンジンに提供できます。

  • 正規表現を Regex 表す オブジェクトをインスタンス化します。 これを行うには、正規表現パターンをコンストラクターに Regex 渡します。 Regexオブジェクトは不変です。正規表現を使用してオブジェクトをRegexインスタンス化する場合、そのオブジェクトの正規表現を変更することはできません。

  • 検索する正規表現とテキストの両方を (SharedVisual Basic の場合は) Regex メソッドにstatic指定します。 これにより、オブジェクトを明示的に作成せずに正規表現を Regex 使用できます。

すべての Regex パターン識別メソッドには、静的オーバーロードとインスタンス オーバーロードの両方が含まれます。

正規表現エンジンは、パターンを使用する前に、特定のパターンをコンパイルする必要があります。 オブジェクトは不変であるため Regex 、これはクラス コンストラクターまたは静的メソッドが呼び出されたときに Regex 発生する 1 回限りのプロシージャです。 正規表現エンジンは、単一の正規表現を繰り返しコンパイルする必要をなくすために、静的メソッド呼び出しで使用されるコンパイル済みの正規表現をキャッシュします。 その結果、正規表現パターン マッチング メソッドは、静的メソッドとインスタンス メソッドに対して同等のパフォーマンスを提供します。

重要

.NET Framework バージョン 1.0 と 1.1 では、インスタンスまたは静的メソッドの呼び出しで使用されたかどうかにかかわらず、コンパイルされたすべての正規表現がキャッシュされました。 .NET Framework 2.0 以降では、静的メソッド呼び出しで使用される正規表現のみがキャッシュされます。

ただし、キャッシュは、次の 2 つの場合にパフォーマンスに悪影響を与える可能性があります。

  • 多数の正規表現で静的メソッド呼び出しを使用する場合。 既定では、正規表現エンジンは、最後に使用した 15 個の静的正規表現をキャッシュします。 アプリケーションで 15 を超える静的正規表現を使用している場合は、一部の正規表現を再コンパイルする必要があります。 この再コンパイルを防ぐために、 プロパティを Regex.CacheSize 増やすことができます。

  • 以前にコンパイルされた正規表現を使用して新しい Regex オブジェクトをインスタンス化する場合。 たとえば、次のコードでは、テキスト ストリーム内の重複する単語を検索する正規表現を定義します。 この例では 1 つの正規表現を使用しますが、新 Regex しい オブジェクトをインスタンス化してテキストの各行を処理します。 これにより、ループの反復ごとに正規表現が再コンパイルされます。

    StreamReader sr = new StreamReader(filename);
    string input;
    string pattern = @"\b(\w+)\s\1\b";
    while (sr.Peek() >= 0)
    {
       input = sr.ReadLine();
       Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
       MatchCollection matches = rgx.Matches(input);
       if (matches.Count > 0)
       {
          Console.WriteLine("{0} ({1} matches):", input, matches.Count);
          foreach (Match match in matches)
             Console.WriteLine("   " + match.Value);
       }
    }
    sr.Close();
    
    Dim sr As New StreamReader(filename)
    Dim input As String
    Dim pattern As String = "\b(\w+)\s\1\b"
    Do While sr.Peek() >= 0
       input = sr.ReadLine()
       Dim rgx As New Regex(pattern, RegexOptions.IgnoreCase)
       Dim matches As MatchCollection = rgx.Matches(input)
       If matches.Count > 0 Then
          Console.WriteLine("{0} ({1} matches):", input, matches.Count)
          For Each match As Match In matches
             Console.WriteLine("   " + match.Value)
          Next   
       End If
    Loop
    sr.Close()
    

    再コンパイルを防ぐには、次の書き換えられた例に示すように、それを必要とするすべてのコードからアクセスできる 1 つの Regex オブジェクトをインスタンス化する必要があります。

    StreamReader sr = new StreamReader(filename);
    string input;
    string pattern = @"\b(\w+)\s\1\b";
    Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
    
    while (sr.Peek() >= 0)
    {
       input = sr.ReadLine();
       MatchCollection matches = rgx.Matches(input);
       if (matches.Count > 0)
       {
          Console.WriteLine("{0} ({1} matches):", input, matches.Count);
          foreach (Match match in matches)
             Console.WriteLine("   " + match.Value);
       }
    }
    sr.Close();
    
    Dim sr As New StreamReader(filename)
    Dim input As String
    Dim pattern As String = "\b(\w+)\s\1\b"
    Dim rgx As New Regex(pattern, RegexOptions.IgnoreCase)
    Do While sr.Peek() >= 0
       input = sr.ReadLine()
       Dim matches As MatchCollection = rgx.Matches(input)
       If matches.Count > 0 Then
          Console.WriteLine("{0} ({1} matches):", input, matches.Count)
          For Each match As Match In matches
             Console.WriteLine("   " + match.Value)
          Next   
       End If
    Loop
    sr.Close()
    

解説に戻る

正規表現操作の実行

オブジェクトをインスタンス化し、そのメソッドを Regex 呼び出すか、静的メソッドを呼び出すかに関係なく、 Regex クラスには次のパターンマッチング機能が用意されています。

  • 一致の検証。 メソッドを IsMatch 呼び出して、一致が存在するかどうかを判断します。

  • 1 つの一致の取得。 メソッドを Match 呼び出して、 Match 文字列または文字列の一部の最初の一致を表すオブジェクトを取得します。 後続の一致は、 メソッドを呼び出 Match.NextMatch すことによって取得できます。

  • すべての一致の取得。 メソッドを Matches 呼び出して、 System.Text.RegularExpressions.MatchCollection 文字列または文字列の一部で検出されたすべての一致を表すオブジェクトを取得します。

  • 一致したテキストの置換。 一致したテキストを Replace 置き換えるには、 メソッドを呼び出します。 置換テキストは、正規表現で定義することもできます。 さらに、一部の Replace メソッドには、置換テキストをプログラムで定義できる パラメーターが含まれています MatchEvaluator

  • 入力文字列の一部から形成される文字列配列の作成。 メソッドを Split 呼び出して、正規表現で定義されている位置で入力文字列を分割します。

クラスには、そのパターン マッチング メソッドに加えて、 Regex いくつかの特殊な目的のメソッドが含まれています。

  • メソッドは Escape 、正規表現または入力文字列で正規表現演算子として解釈できる文字をエスケープします。

  • メソッドは、 Unescape これらのエスケープ文字を削除します。

  • メソッドは CompileToAssembly 、定義済みの正規表現を含むアセンブリを作成します。 .NET Frameworkには、 名前空間内のこれらの特殊な目的のアセンブリの例がSystem.Web.RegularExpressions含まれています。

解説に戻る

Time-Out値の定義

.NET では、完全な機能を備えた正規表現言語がサポートされており、パターン マッチングの能力と柔軟性が大幅に向上しています。 ただし、パワーと柔軟性にはコストがかかります。パフォーマンスが低下するリスクがあります。 パフォーマンスが低い正規表現は、驚くほど簡単に作成できます。 場合によっては、過剰なバックトラッキングに依存する正規表現操作は、正規表現パターンとほぼ一致するテキストを処理するときに応答を停止するように見える場合があります。 .NET 正規表現エンジンの詳細については、「正規表現 の動作の詳細」を参照してください。 過剰なバックトラッキングの詳細については、「 バックトラッキング」を参照してください。

.NET Framework 4.5 以降では、正規表現の一致のタイムアウト間隔を定義して、過剰なバックトラッキングを制限できます。 正規表現パターンと入力テキストによっては、実行時間が指定されたタイムアウト間隔を超える場合がありますが、指定されたタイムアウト間隔よりもバックトラッキングに時間が費やされることはありません。 正規表現エンジンがタイムアウトすると、例外が RegexMatchTimeoutException スローされます。 ほとんどの場合、正規表現エンジンは、正規表現パターンとほぼ一致するテキストと一致させることで、処理能力を無駄にすることを防ぎます。 ただし、タイムアウト間隔が低すぎるか、現在のマシンの負荷によってパフォーマンスが全体的に低下したことを示している可能性もあります。

例外の処理方法は、例外の原因によって異なります。 タイムアウト間隔が低すぎるか、または過剰なマシン負荷が原因で例外が発生した場合は、タイムアウト間隔を長くして、一致する操作を再試行できます。 正規表現が過剰なバックトラッキングに依存しているために例外が発生した場合は、一致が存在しないと想定できます。また、必要に応じて、正規表現パターンの変更に役立つ情報をログに記録することもできます。

正規表現オブジェクトをインスタンス化するときにコンストラクターを Regex(String, RegexOptions, TimeSpan) 呼び出すことで、タイムアウト間隔を設定できます。 静的メソッドの場合は、パラメーターを持つ一致するメソッドのオーバーロードを呼び出すことによって、タイムアウト間隔を matchTimeout 設定できます。 タイムアウト値を明示的に設定しない場合、既定のタイムアウト値は次のように決定されます。

  • 存在する場合は、アプリケーション全体のタイムアウト値を使用します。 これは、Regex オブジェクトがインスタンス化されるアプリケーション ドメインまたは静的メソッド呼び出しが行われるアプリケーション ドメインに適用される任意のタイムアウト値とすることができます。 アプリケーション全体のタイムアウト値を設定するには、AppDomain.SetData メソッドを呼び出して、TimeSpan 値の文字列表現を "REGEX_DEFAULT_MATCH_TIMEOUT" プロパティに割り当てます。

  • アプリケーション全体のタイムアウト値が設定されていない場合は、値 InfiniteMatchTimeout を使用します。

重要

すべての正規表現パターン マッチング操作でタイムアウト値を設定することをお勧めします。 詳細については、「 正規表現のベスト プラクティス」を参照してください。

解説に戻る

コンストラクター

Regex()

Regex クラスの新しいインスタンスを初期化します。

Regex(SerializationInfo, StreamingContext)

シリアル化したデータを使用して、Regex クラスの新しいインスタンスを初期化します。

Regex(String)

指定した正規表現の Regex クラスの新しいインスタンスを初期化します。

Regex(String, RegexOptions)

パターンを変更するオプションを使用して、指定した正規表現の Regex クラスの新しいインスタンスを初期化します。

Regex(String, RegexOptions, TimeSpan)

パターンを変更するオプションと、パターン マッチ メソッドがタイムアウトするまでに一致を試みる時間を指定する値を使用して、指定した正規表現の Regex クラスの新しいインスタンスを初期化します。

フィールド

capnames

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

caps

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

capsize

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

capslist

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

factory

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

InfiniteMatchTimeout

パターン一致の操作がタイムアウトしないことを指定します。

internalMatchTimeout

操作がタイムアウトになる前に、パターン一致操作で経過できる最大時間。

pattern

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

roptions

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

プロパティ

CacheSize

コンパイルされた正規表現の現在の静的キャッシュ内の最大エントリ数を取得または設定します。

CapNames

名前付きキャプチャ対象グループをインデックス値にマップする辞書を取得または設定します。

Caps

番号付きのキャプチャ対象グループをインデックス値にマップする辞書を取得または設定します。

MatchTimeout

現在のインスタンスのタイムアウト間隔を取得します。

Options

Regex コンストラクターに渡されたオプションを取得します。

RightToLeft

正規表現が右から左の方向に検索するかどうかを示す値を取得します。

メソッド

CompileToAssembly(RegexCompilationInfo[], AssemblyName)
互換性のために残されています。

1 つ以上の指定した Regex オブジェクトをコンパイルして、名前付きアセンブリに保存します。

CompileToAssembly(RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[])
互換性のために残されています。

指定した 1 つ以上の Regex オブジェクトをコンパイルして、指定した属性を持つ名前付きアセンブリに保存します。

CompileToAssembly(RegexCompilationInfo[], AssemblyName, CustomAttributeBuilder[], String)
互換性のために残されています。

指定した 1 つ以上の Regex オブジェクトと、指定した 1 つのリソース ファイルをコンパイルして、指定した属性を持つ名前付きアセンブリに保存します。

Count(ReadOnlySpan<Char>)

正規表現のすべての出現箇所を入力スパンで検索し、一致する数を返します。

Count(ReadOnlySpan<Char>, Int32)

正規表現のすべての出現箇所を入力スパンで検索し、一致する数を返します。

Count(ReadOnlySpan<Char>, String)

正規表現のすべての出現箇所を入力スパンで検索し、一致する数を返します。

Count(ReadOnlySpan<Char>, String, RegexOptions)

正規表現のすべての出現箇所を入力スパンで検索し、一致する数を返します。

Count(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

正規表現のすべての出現箇所を入力スパンで検索し、一致する数を返します。

Count(String)

正規表現のすべての出現箇所を入力文字列で検索し、一致する数を返します。

Count(String, String)

正規表現のすべての出現箇所を入力文字列で検索し、一致する数を返します。

Count(String, String, RegexOptions)

正規表現のすべての出現箇所を入力文字列で検索し、一致する数を返します。

Count(String, String, RegexOptions, TimeSpan)

正規表現のすべての出現箇所を入力文字列で検索し、一致する数を返します。

EnumerateMatches(ReadOnlySpan<Char>)

正規表現のすべての出現箇所を入力スパンで検索し、 を返 Regex.ValueMatchEnumerator して一致を反復処理します。

EnumerateMatches(ReadOnlySpan<Char>, Int32)

正規表現のすべての出現箇所を入力スパンで検索し、 を返 Regex.ValueMatchEnumerator して一致を反復処理します。

EnumerateMatches(ReadOnlySpan<Char>, String)

正規表現のすべての出現箇所を入力スパンで検索し、 を返 Regex.ValueMatchEnumerator して一致を反復処理します。

EnumerateMatches(ReadOnlySpan<Char>, String, RegexOptions)

正規表現のすべての出現箇所を入力スパンで検索し、 を返 Regex.ValueMatchEnumerator して一致を反復処理します。

EnumerateMatches(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

正規表現のすべての出現箇所を入力スパンで検索し、 を返 Regex.ValueMatchEnumerator して一致を反復処理します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Escape(String)

文字の最小セット (\、*、+、?、|、{、[、(、)、^、$、.、#、空白) をエスケープ コードに置き換えてエスケープします。 これにより、正規表現エンジンではこのような文字がメタ文字ではなくリテラルとして解釈されます。

Finalize()

このメンバーは Finalize() をオーバーライドし、より詳細なドキュメントがそのトピックで使用できるようになる場合があります。

Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。

GetGroupNames()

正規表現で使用されるキャプチャ グループ名の配列を返します。

GetGroupNumbers()

配列内のグループ名に対応したキャプチャ グループ番号の配列を返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
GroupNameFromNumber(Int32)

指定したグループ番号に対応するグループ名を取得します。

GroupNumberFromName(String)

指定したグループ名に対応するグループ番号を返します。

InitializeReferences()

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

IsMatch(ReadOnlySpan<Char>)

Regex コンストラクターで指定された正規表現が、指定した入力スパン内の一致を検出するかどうかを示します。

IsMatch(ReadOnlySpan<Char>, Int32)

Regex コンストラクターで指定された正規表現が、指定した入力スパン内の一致を検出するかどうかを示します。

IsMatch(ReadOnlySpan<Char>, String)

指定した正規表現が、指定した入力スパンで一致するものを見つけるかどうかを示します。

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

指定した一致オプションを使用して、指定した正規表現が指定した入力スパンで一致を検出するかどうかを示します。

IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した正規表現が指定した入力スパンで一致を検出するかどうかを示します。

IsMatch(String)

Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

IsMatch(String, Int32)

入力文字列内の指定した位置から検索を開始して、Regex コンストラクターで指定された正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

IsMatch(String, String)

指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

IsMatch(String, String, RegexOptions)

指定した一致オプションを使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

IsMatch(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した正規表現に一致する箇所が、指定した入力文字列内に見つかるかどうかを示します。

Match(String)

指定した入力文字列内で、Regex コンストラクターで指定された正規表現と最初に一致する対象を 1 つ検索します。

Match(String, Int32)

入力文字列内の指定した開始位置から開始して、その入力文字列内で正規表現に最初に一致する箇所を検索します。

Match(String, Int32, Int32)

入力文字列内の指定した開始位置から開始し、指定した文字数だけを検索対象として、その入力文字列内で正規表現に最初に一致する箇所を検索します。

Match(String, String)

指定した入力文字列内で、指定した正規表現に最初に一致する箇所を検索します。

Match(String, String, RegexOptions)

指定した一致オプションを使用して、入力文字列内で、指定した正規表現に最初に一致する箇所を検索します。

Match(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、入力文字列内で、指定した正規表現に最初に一致する箇所を検索します。

Matches(String)

指定した入力文字列内で、正規表現と一致する対象をすべて検索します。

Matches(String, Int32)

入力文字列内の指定した開始位置から検索を開始した場合に、その指定入力文字列内で正規表現と一致する対象をすべて検索します。

Matches(String, String)

指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。

Matches(String, String, RegexOptions)

指定した一致オプションを使用して、指定した入力文字列内で、指定した正規表現に一致する箇所をすべて検索します。

Matches(String, String, RegexOptions, TimeSpan)

指定した一致オプションとタイムアウト間隔を使用して、指定した入力文字列内で、指定した正規表現に一致するすべての箇所を検索します。

MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
Replace(String, MatchEvaluator)

指定した入力文字列内で、指定した正規表現に一致するすべての文字列を MatchEvaluator デリゲートによって返される文字列に置き換えます。

Replace(String, MatchEvaluator, Int32)

指定した入力文字列内で正規表現パターンに一致する文字列を、指定した最大回数だけ、MatchEvaluator デリゲートによって返される文字列に置き換えます。

Replace(String, MatchEvaluator, Int32, Int32)

指定した入力部分文字列内で正規表現パターンに一致する文字列を、指定した最大回数だけ、MatchEvaluator デリゲートによって返される文字列に置き換えます。

Replace(String, String)

指定した入力文字列内で正規表現パターンに一致するすべての文字列を、指定した置換文字列に置換します。

Replace(String, String, Int32)

指定した入力文字列内で正規表現パターンに一致する文字列を、指定した最大回数だけ、指定した置換文字列に置換します。

Replace(String, String, Int32, Int32)

指定した入力部分文字列内で正規表現パターンに一致する文字列を、指定した最大回数だけ、指定した置換文字列に置換します。

Replace(String, String, MatchEvaluator)

指定した入力文字列内で、指定した正規表現に一致するすべての文字列を MatchEvaluator デリゲートによって返される文字列に置き換えます。

Replace(String, String, MatchEvaluator, RegexOptions)

指定した入力文字列内で、指定した正規表現に一致するすべての文字列を MatchEvaluator デリゲートによって返される文字列に置き換えます。 指定したオプションで、一致操作を変更します。

Replace(String, String, MatchEvaluator, RegexOptions, TimeSpan)

指定した入力文字列内で、指定した正規表現に一致するすべての部分文字列を、MatchEvaluator デリゲートによって返される文字列に置き換えます。 追加のパラメーターでは、一致が見つからない場合に一致操作とタイムアウト間隔を変更するオプションを指定します。

Replace(String, String, String)

指定した入力文字列内で指定した正規表現に一致するすべての文字列を、指定した置換文字列に置換します。

Replace(String, String, String, RegexOptions)

指定した入力文字列内で指定した正規表現に一致するすべての文字列を、指定した置換文字列に置換します。 指定したオプションで、一致操作を変更します。

Replace(String, String, String, RegexOptions, TimeSpan)

指定した入力文字列内で指定した正規表現に一致するすべての文字列を、指定した置換文字列に置換します。 追加のパラメーターでは、一致が見つからない場合に一致操作とタイムアウト間隔を変更するオプションを指定します。

Split(String)

Regex コンストラクターで指定された正規表現パターンによって定義されている位置で入力文字列を分割し、部分文字列の配列に格納します。

Split(String, Int32)

Regex コンストラクターで指定された正規表現で定義されている位置で、入力文字列を指定されている最大回数だけ分割し、部分文字列の配列に格納します。

Split(String, Int32, Int32)

Regex コンストラクターで指定された正規表現で定義されている位置で、入力文字列を指定されている最大回数だけ分割し、部分文字列の配列に格納します。 正規表現パターンの検索は、入力文字列の指定した文字位置から開始します。

Split(String, String)

正規表現パターンによって定義されている位置で、入力文字列を部分文字列の配列に分割します。

Split(String, String, RegexOptions)

指定された正規表現パターンによって定義されている位置で、入力文字列を部分文字列の配列に分割します。 指定したオプションで、一致操作を変更します。

Split(String, String, RegexOptions, TimeSpan)

指定された正規表現パターンによって定義されている位置で、入力文字列を部分文字列の配列に分割します。 追加のパラメーターでは、一致が見つからない場合に一致操作とタイムアウト間隔を変更するオプションを指定します。

ToString()

Regex コンストラクターに渡された正規表現パターンを返します。

Unescape(String)

入力文字列内に含まれるエスケープされた文字を変換します。

UseOptionC()

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

UseOptionR()

CompileToAssembly メソッドで生成される Regex オブジェクトによって使用されます。

ValidateMatchTimeout(TimeSpan)

タイムアウト間隔が許容範囲内にあるかどうかを確認します。

明示的なインターフェイスの実装

ISerializable.GetObjectData(SerializationInfo, StreamingContext)

SerializationInfo オブジェクトに、現在の Regex オブジェクトの逆シリアル化に必要なデータを入力します。

適用対象

スレッド セーフ

クラスは Regex 不変 (読み取り専用) で、スレッド セーフです。 Regex オブジェクトは任意のスレッドに作成でき、スレッド間で共有できます。 詳細については、「 スレッド セーフ」を参照してください。

こちらもご覧ください