想定义两个函数,sumd和sumc,并且支持加减法。比如:
sumd(a)
sumd(a)+sumd(c)
sumd(a)+sumd(c)-sumc(b)
等Regex.IsMatch(txtExpress, @"^(sum(c|d)\(\w+\))((\+|-)sum(c|d)\(\w+\))*?$")这样似乎是没有问题,但当需要处理多行的时候,就有问题了,
Regex.IsMatch(txtExpress.Text, @"^(sum(c|d)\(\w+\))((\+|-)sum(c|d)\(\w+\))*?$",RegexOptions.Multiline)只会判断最后一行是否符合,比如
"...\r\n...\r\nsumd(1)+sumc(1)-sumc(1)"
就返回true,请问应该怎么判断整个公式是否符合呢?
sumd(a)
sumd(a)+sumd(c)
sumd(a)+sumd(c)-sumc(b)
等Regex.IsMatch(txtExpress, @"^(sum(c|d)\(\w+\))((\+|-)sum(c|d)\(\w+\))*?$")这样似乎是没有问题,但当需要处理多行的时候,就有问题了,
Regex.IsMatch(txtExpress.Text, @"^(sum(c|d)\(\w+\))((\+|-)sum(c|d)\(\w+\))*?$",RegexOptions.Multiline)只会判断最后一行是否符合,比如
"...\r\n...\r\nsumd(1)+sumc(1)-sumc(1)"
就返回true,请问应该怎么判断整个公式是否符合呢?
Regex.IsMatch(txtExpress.Text, @"^(sum(c|d)\(\w+\))((\+|-)sum(c|d)\(\w+\))*?$",RegexOptions.Multiline)
对于多行,你给个具体的例子吧,然后说下你是想让它返回true还是false,说下你现在的做法哪里有问题了
-----------------
sumd(a)
+sumd(c)
-sumc(b)
-----------------希望这样写为false(但我的写法会判为true)
-----------------
abcdefg
sumc(a)
+sumd(c)
-----------------
sumd(a)
+sumd(c)
-sumc(b)
或者:
sumd(a)
sumd(a)+sumd(c)
sumd(a)+sumd(c)-sumc(b)