我试图产生可能是这样的事情一个公式,这只是一个样本,如何解析以下字符串
A + B + C > D - A
现在,A,B,C,d,等等都是列名一张表格(如excel表格)我将在内存中访问。
我需要生成一个规则,就像上面的A + B + C > D - A
一样,它将决定用户可以在Cell中添加什么样的值。
目前我就是这样开始:
string toValidate = "A + B + C > D + E - A";
string lhs = "", rhs = "";
string[] comparisonOperators = new string[] { "=", ">", "<", "<>", "!=" };
char[] arithmeticOperators = { '+', '-', '/', '*' };
toValidate = toValidate.Replace(@" ", "");
for (int i = 0; i < comparisonOperators.Length; i++)
{
if (toValidate.Contains(comparisonOperators[i]))
{
operatorIndex = toValidate.IndexOf(comparisonOperators[i]);
break;
}
}
lhs = toValidate.Substring(0, operatorIndex);
rhs = toValidate.Substring(operatorIndex + 1);
string[] columnLhsList = lhs.Split(arithmeticOperators);
string[] columnRhsList = rhs.Split(arithmeticOperators);
然而,即使我有字符串作为lhs
和rhs
,甚至我的运营商,其>
在上面的代码,我不能够理解我怎么能在工作表本身上应用公式。我只需要知道哪个Column有哪个操作员关联。
因为我在另一种情况下A
之前有个别的列名,但不是经营者面前,为e.g,
+
之前A
-
。
我如何解析上述请帮助。