假设下面的字符串是在C#中,如何替换其中的内容:
由于不能简单地将所有
y=x^7+3x^4-x+5
使用
y=0^7+3*0^4-0+5
由于不能简单地将所有
x
的实例替换为 0
,否则您会得到 30^4
。var a = "y=x^7+3x^4-x+5";
var b = Regex.Replace(a, @"(\d+|[a-zA-Z])(?=\d+|[a-zA-Z])", @"$1*");
var c = Regex.Replace(b, @"x", @"0");
第二行概述:匹配任何数字或变量,后面跟随任何数字或变量。
输出示例:
In: y=33xggyz/3/4*x/x+xx1 | In: y=x^7+3x^4-x+5
Out:y=33*x*g*g*y*z/3/4*x/x+x*x*1 | Out:y=0^7+3*0^4-0+5
|
In: y=2+33xggyz/3/4*x/x+xx | In: y=x1
Out:y=2+33*0*g*g*y*z/3/4*0/0+0*0 | Out:y=0*1
|
In: y=10xy^2+xx+(12x+1yy) | In: y(xx)=1
Out:y=10*0*y^2+0*0+(12*0+1*y*y) | Out:y(0*0)=1
更新:(2015年7月4日)修复了错误,y=x1时失败(返回y=01)
y=x^7+3x^4-x+5
到
y=0^7+3*0^4-0+5
希望简单地添加另一个变量。
int x = //Whatever x is going to be;
int j = 0;
int y = j^7+3x^4-j+5
现在,如果您有比这更多的用户案例,您可能会非常快速地添加大量变量,在这种情况下,您将不想使用此选项。但是,如果您仅用于独立的情况,那么这可能是一个可行的答案。
y = 1*0^7+3*0^4+5
。 - Malte R