次の方法で共有


正規表現アクティビティ

このトピックの内容は、Windows Workflow Foundation 4 に該当します。

このサンプルでは、System.Text.RegularExpressions 名前空間の正規表現機能を公開する一連のアクティビティを作成する方法を示します。これらのカスタム アクティビティはワークフロー アプリケーション内で使用できます。正規表現詳細情報、「System.Text.RegularExpressions 名前空間」を参照してください。

次の表に、このサンプルのカスタム アクティビティの詳細を示します。

アクティビティ 説明

IsMatch

正規表現で入力文字列内に一致が見つかったかどうかを示します。

Matches

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

Replace

指定された入力文字列内で、正規表現パターンに一致する文字列を、指定された置換文字列で置き換えます。

IsMatch

IsMatch カスタム アクティビティは、Input 文字列プロパティが Pattern プロパティで指定された正規表現で一致を見つけると、true を返します。このアクティビティは CodeActivity から派生し、Execute メソッド内で、IsMatch メソッドを呼び出します。

次の表で、IsMatch カスタム アクティビティのプロパティと戻り値について説明します。

プロパティ値または戻り値 説明

Pattern (必須)

検索に使用する正規表現。

Input (必須)

検索対象の入力文字列。

RegexOptions

RegexOptions 列挙値のビット単位の OR の組み合わせ。

戻り値

指定されたパターンで一致が見つかった場合は true、それ以外の場合は false

次のコード例は、IsMatch カスタム アクティビティの使用方法を示します。

new IsMatch
{
    Pattern = new InArgument<string>( @"^-?\d+(\.\d{2})?$"),
    Input = "20.00",
};

Matches

Matches カスタム アクティビティは、入力文字列で、正規表現に一致するすべての文字列を検索し、一致した文字列をすべて返します。このアクティビティは CodeActivity から派生し、Execute メソッド内で、Matches メソッドを呼び出します。

次の表で、IsMatch カスタム アクティビティのプロパティと戻り値について説明します。

プロパティ値または戻り値 説明

Pattern (必須)

検索に使用する正規表現。

Input (必須)

検索対象の入力文字列。

RegexOptions

RegexOptions 列挙値のビット単位の OR の組み合わせ。

戻り値

一致する文字列のコレクションが格納された MatchCollection

次のコード例は、Matches カスタム アクティビティの使用方法を示します。

new Matches
{
    Pattern = @"\b(?<word>\w+)\s+(\k<word>)\b",
    Input = "The quick brown fox  fox jumped over over the lazy dog dog.",
};

Replace

Replace カスタム アクティビティは入力文字列を検索し、指定された正規表現と一致するすべての文字列を 1 つの文字列で置き換えます。このアクティビティは CodeActivity から派生し、Execute メソッド内で、Replace メソッドを呼び出します。

次の表で、Replace カスタム アクティビティのプロパティと戻り値について説明します。

プロパティ値または戻り値 説明

Pattern (必須)

検索に使用する正規表現。

Input (必須)

検索対象の入力文字列。

Replacement

置換文字列。

Replacement が指定されると、MatchEvaluator プロパティは無視されます。Replacement または MatchEvaluator のどちらかのプロパティを設定する必要があります。

MatchEvaluator

各一致文字列を調べ、元の一致文字列または置換文字列のどちらかを返すカスタム メソッド。

Replacement が指定されると、MatchEvaluator プロパティは無視されます。Replacement または MatchEvaluator のどちらかのプロパティを設定する必要があります。

RegexOptions

RegexOptions 列挙値のビット単位の OR の組み合わせ。

戻り値

一致する文字列のコレクションが格納された MatchCollection

次のコード例は、Replace カスタム アクティビティの使用方法を示します。

// Using the replacement string.
new Replace
{
    Pattern = @"\bWorld\b",
    Input = "Hello World! This is a wonderful World",
    Replacement = "Universe"
};

// Using a match evaluator.
new Replace
{
    Pattern = new InArgument<string>(pattern),
    Input = new InArgument<string>(input),
    MatchEvaluator = new MatchEvaluator(CapText)                
};

このサンプルを使用するには

  1. Visual Studio 2010 を使用して、RegexActivities.sln ソリューション ファイルを開きます。

  2. ソリューションをビルドするには、F6 キーを押します。

  3. ソリューションを実行するには、Ctrl キーを押しながら F5 キーを押します。

Dd797587.Important(ja-jp,VS.100).gif 注 :
サンプルは、既にコンピューターにインストールされている場合があります。続行する前に、次の (既定の) ディレクトリを確認してください。

<InstallDrive>:\WF_WCF_Samples

このディレクトリが存在しない場合は、「.NET Framework 4 向けの Windows Communication Foundation (WCF) および Windows Workflow Foundation (WF) のサンプル」にアクセスして、Windows Communication Foundation (WCF) および WF のサンプルをすべてダウンロードしてください。このサンプルは、次のディレクトリに格納されます。

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\Regex