求 C# 正则表达式
Dictionary<string, string> str = new Dictionary<string, string>();
str.Add("a1", KryptonTextBox1.Text);
str.Add("a2", KryptonTextBox2.Text);
str.Add("a3", KryptonTextBox3.Text);
try
{
string temp = textABC.Text;
foreach (KeyValuePair<string, string> kv in str)
{
temp = Regex.Replace(temp, string.Format("^{0}|{0}$|(?<=[-+ (*/]){0}(?=[-+ )*/])", kv.Value), kv.Key);
}
Expression ep = new Expression(temp);
//Expression ep = new Expression(textABC.Text.Replace(str["a1"], "a1").Replace(str["a2"], "a2").Replace(str["a3"], "a3"));
ep.Parameters["a1"] = Convert.ToDouble(textA.Text);
ep.Parameters["a2"] = Convert.ToDouble(textB.Text);
ep.Parameters["a3"] = Convert.ToDouble(textC.Text);
labResult.Text = ep.Evaluate().ToString();
}
catch (Exception ex)
{
labResult.Text = ex.Message;
}上面这段代码里,foreach 里的替换好像没实现,有没大牛可以把这个正则补充完整?
想达到的效果是
在工资表达式里 住宿 * 300 + 水电 *1.5 + 早餐 * 3 + 午餐 *8+ 晚餐 *8
经过替换后得到 A1 *300 + A2 * 1.5 + A3 *3 + A4 * 8 +A5*8
str 里保存了所有的项目 { A1 住宿 }{A2 水电}{A3 早餐}{A4 午餐}{A5 晚餐}
所以正则要求是 找出 str 的 value 并 替换成 key
正则要求 字符串匹配 左右 结束 或为空 或是 + - * / 符号
...全文
相关推荐
C#编写的科学计算器
C#中的System.Math类提供了这些功能,例如Math.Pow()用于求幂,Math.Sqrt()求平方根,Math.Sin()、Math.Cos()、Math.Tan()等用于三角函数运算。
C#编程知识点总结1-10C#编程知识点总结
这可以通过正则表达式或者自定义逻辑来实现,以确保数据的有效性和一致性。5. **求最长公共子串**:这是一个算法问题,C#可以使用动态规划来解决。
强大的正则表达式生成工具 C#版
在这个“强大的正则表达式生成工具 C#版”中,我们可以期待一个专为C#开发者设计的高效、直观的工具,它能够帮助程序员快速创建、测试和调试正则表达式。正则表达式的基本概念包括:1.
C#正则表达式语法大全
C#正则表达式语法大全涵盖了在C#编程语言中使用正则表达式进行文本匹配、提取、替换等操作所必需的语法知识。
邮箱及密码的正则表达式验证(C#)
在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序。在进行用户输入验证时,正则表达式是强大的工具,尤其对于邮箱和密码这类需要特定格式的字段。


