假设我有这个字符串:
3+5+6+2^5+9+1+2+32^2+10^10
我想在^的左侧和右侧替换所有出现的数字,包括^但不包括数字结束的位置,例如+符号,以此为例:
我正在寻找某种正则表达式或字符串替换,它只会替换^符号左侧和右侧的数字(可以是小数),并且是较大字符串的一部分。我的大脑正在努力使这项工作完全正确。
答案 0 :(得分:3)
刚刚测试过,并在这里工作:
var str = Regex.Replace("3+5+6+2^5+9+1+2+32^2+10^10",
@"(\d+)\^(\d+)", "Pow($1,$2)");
如果您需要更换控件:
var str = Regex.Replace("3+5+6+2^5+9+1+2+32^2+10^10",
@"(\d+)\^(\d+)",
m => string.Format("Pow({0},{1})", m.Groups[1].Value, m.Groups[2].Value ));
答案 1 :(得分:2)
您可以使用群组替换
Regex.Replace("yourString",@"(\d+)\^(\d+)","Pow($1,$2)");
(\d+)
和(\d+)
分为两组,即Group1
和Group 2
(不包括0组,因为它包含整个匹配)
当您替换它时,您可以使用$1
和$2