询问C#中如何用正则表达式分割算术表达式

来源:百度知道 编辑:UC知道 时间:2024/06/29 23:41:59
以下是我程序一小部分:
string patten = "[*+-/]";
string patten1 = "[0-9]+[.[0-9]*]*";
string[] number;
string[] sign;
number = Regex.Split(str, patten);
sign = Regex.Split(str, patten1);
这样程序能够把符号匹配分割出来,数字呢不是小数就可以,但是小数就不行,匹配不了小数,请高手指教如何把小数匹配出来,比如:1.0+2.0
只能分割成1,0,2,0,不能把小数分割开来

^[+-]?\d*[.]?\d*$

你是不是在做动态表达式执行的东西?如果是的话我很不推荐你用正则表达式分割,而使用专门解决表达式分析或者与据分析的东西解决,比如coco/r,可以写一个语法规则和处理规则,让你解析一个表达式。