あなたはRegex
クラスを使用し、各試合に1回呼び出されるデリゲートを提供することができます:ここでは
はさらに簡単な例です。一致したテキストを置き換える文字列を返す必要があります。
あなたは単にあなたのカウンタを保持する変数を宣言する必要があります。これを実行した後
string a = "**MustbeReplaced**asdgasfsff**MustbeReplaced**asdfafasfsa";
int replacementIndex = 0;
string b = Regex.Replace(a, "MustbeReplaced", match =>
{
replacementIndex++;
return $"Replaced{replacementIndex}";
});
、b
は、この含まれています:あなたが今Regex
を使用しているので:
**Replaced1**asdgasfsff**Replaced2**asdfafasfsa
注意をクラスでは、Regex
が単純な文字毎のパターンマッチングからパターンを補うために使用するすべての特殊文字を認識してください。アスタミックス、疑問符、括弧などの記号を含むテキストを置き換える場合は、それらをエスケープする必要があります。
は幸いにも、我々は単に私たちのためにそれを行うにはRegex
クラスを頼むことができます。 string a = "**Mustbe?Replaced**asdgasfsff**Mustbe?Replaced**asdfafasfsa";
int replacementIndex = 0;
string b = Regex.Replace(a, Regex.Escape("Mustbe?Replaced"), match =>
{
replacementIndex++;
return $"Replaced{replacementIndex}";
});
は 'IndexOf'は、' 'IndexOf'が戻るまで繰り返し、次の発生前の位置+交換用の長さで始まるを見つけ、交換すると最初に出現-1' [の –
可能な重複私は\ *最初に置き換えるにはどうすればよいの検索します.NETの文字列のインスタンス\ *?](http://stackoverflow.com/questions/141045/how-do-i-replace-the-first-instance-of-a-string-in-net) – Esko
ブレイクseperatorとしてキー "MustbeReplaced"を使用して文字列配列に文字列を変換します。次に、配列のループを実行します。 – Knu8