给定一个输入字符串
12/3
12*3/12
(12*54)/(3/4)
我需要查找并用包含运算符的字符串替换每个运算符。
some12text/some3text
some12text*some2text/some12text
(some12text*some54text)/(some3text/some4text)
实际应用: 从后端(使用c#),我有以下字符串
34*157
which i need to translate to:
document.getElementById("34").value*document.getElementById("157").value
并返回到可以在eval()函数中运行的屏幕。
到目前为止,我已经
var pattern = @"\d+";
var input = "12/3;
Regex r = new Regex(pattern);
var matches = r.Matches(input);
foreach (Match match in matches)
{
// im at a loss what to match and replace here
}
注意:在foreach循环中我不能进行全局的Replace(),因为它可能会错误地替换(12/123) - 它只应该匹配第一个12并进行替换。
注意2:我可以使用string.Remove和string.Insert,但这会改变第一个匹配后的字符串,从而破坏下一次匹配的计算。
欢迎提供任何指导意见。
Regex.Replace(s, @"\d+", "document.getElementById(\"$&\").value")
吗?为什么不使用Regex.Matches
? - Wiktor Stribiżew