入力文字列:A+SUM(A)C+AB-C+SUM(A)+1
A を 0 に置き換えたいのですが、結果は次のようになります。0+SUM(A)C+AB-C+SUM(A)+1
または、SUM(A) を 0 に置き換えると、結果は次のようになります。A+SUM(A)C+AB-C+0+1
ありがとう
正規表現なし (正規表現はこれにはやり過ぎなので):
var s = "A+SUM(A)+B-C";
var replaceBeginningA = s.Replace("A+", "0+");
var replaceSumA = s.Replace("SUM(A)", "0");
Console.WriteLine(replaceBeginningA); // 0+SUM(A)+B-C
Console.WriteLine(replaceSumA); // A+0+B-C
ただし、コメントで指摘されているように、この入力の形式が異なると予想される場合は、より詳細を提供する必要があります。
多分:
^A
と置き換えます0
SUM\(A\)
と置き換えます0
このようにしてみてください:
string replaced = Regex.Replace(input, @"\b(\w+)\+SUM\(\1\)", "0+0");
これは、フォームのすべてに一致します
foo+SUM(foo)
そしてそれを0+0