求 C# 正则表达式,该如何处理
求 C# 正则表达式
上面这段代码里,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
正则要求 字符串匹配 左右 结束 或为空 或是 + - * / 符号
------解决思路----------------------
你直接把住宿替换成A1,水电替换成A2不就完啦
搞什么正则匹配
------解决思路----------------------
不要为了正则而正则
类似这种简单应用,就是1对1的替换最简单了,加了通配符匹配反而效率不高
------解决思路----------------------
最简单的办法,先替换加班费,再替换加班
A1写成A01,就不至于跟A12混到一起
有时候简单问题就简单处理,不要搞的太复杂了
------解决思路----------------------
简单问题复杂化,不过只要你能解决问题就行。
------解决思路----------------------
能把问题简单化最好,而不是一味追求正则表达式,解决问题提高效率才是王道,老板和客户看的是你的效率,而不去关心你写的代码多么的牛X
------解决思路----------------------
简单问题变复杂可以学到很多东西
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
正则要求 字符串匹配 左右 结束 或为空 或是 + - * / 符号
------解决思路----------------------
你直接把住宿替换成A1,水电替换成A2不就完啦
搞什么正则匹配
------解决思路----------------------
不要为了正则而正则
类似这种简单应用,就是1对1的替换最简单了,加了通配符匹配反而效率不高
------解决思路----------------------
最简单的办法,先替换加班费,再替换加班
A1写成A01,就不至于跟A12混到一起
有时候简单问题就简单处理,不要搞的太复杂了
------解决思路----------------------
简单问题复杂化,不过只要你能解决问题就行。
------解决思路----------------------
能把问题简单化最好,而不是一味追求正则表达式,解决问题提高效率才是王道,老板和客户看的是你的效率,而不去关心你写的代码多么的牛X
------解决思路----------------------
简单问题变复杂可以学到很多东西