Regexクラスにおけるパターンマッチングと文字列操作のメソッドは、静的メソッドとしても、インスタンスメソッドとしても呼び出すことができます。 インスタンスメソッドとして呼び出す場合は、正規表現(=Regexクラス)をインスタンス化してから呼び出します。

Regexクラスの静的メソッドを使ってパターンマッチングを行う
using System;
using System.Text.RegularExpressions;

class Sample {
  static void Main()
  {
    // 「".txt"で終わるかどうか」を表す正規表現
    var pattern = @"\.txt$";

    // 文字列が正規表現にマッチするかどうか調べる
    Console.WriteLine(Regex.IsMatch("sample.txt", pattern));

    Console.WriteLine(Regex.IsMatch("sample.dat", pattern));
  }
}
実行結果
True
False

正規表現をインスタンス化する場合、正規表現文字列をコンストラクタで指定します。 静的メソッドとインスタンスメソッドでは呼び出し方と結果に違いはありませんが、パフォーマンスと内部の動作には違いがあります。 正規表現を使用する際、正規表現文字列の解析が行われますが、インスタンス化する場合は解析された結果がインスタンス内で保持されます。 そのため、同じ正規表現を何度も使用するような状況の場合では、インスタンス化して正規表現を使用することが推奨されます。

このほか、正規表現実行エンジンの挙動の違いやパフォーマンス上の差異に関しては正規表現のキャッシュとコンパイル §.正規表現のキャッシュでも詳しく解説しています。

Regexコンストラクタでは、正規表現エンジンの動作オプションを指定するRegexOptionsや、パターンマッチングのタイムアウト時間を指定することもできます。