Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 分析电子表格语法_Java_Regex_Spreadsheet - Fatal编程技术网

Java 分析电子表格语法

Java 分析电子表格语法,java,regex,spreadsheet,Java,Regex,Spreadsheet,我正在用我的Java类开发一个基本的电子表格编辑器(都是从零开始编写的)。我的任务是编写函数包(分析单元格内容并输出计算结果)。 目前,我可以通过将表达式转换为RPN并计算结果来解析表达式,例如1*(2+3)^4-5%6。现在我正致力于将单元格名称添加到该表达式中。我希望单元名称解析器直接用它们的数值替换单元名称,但我现在很难。我已经设法找到了一种将正则表达式与一个单元格一起使用的方法(灵感来源于),但我不知道如何使它与表达式中的多个单元格名称一起使用。请注意:将正则表达式用于此方法不是一种正确

我正在用我的Java类开发一个基本的电子表格编辑器(都是从零开始编写的)。我的任务是编写函数包(分析单元格内容并输出计算结果)。
目前,我可以通过将表达式转换为RPN并计算结果来解析表达式,例如
1*(2+3)^4-5%6
。现在我正致力于将单元格名称添加到该表达式中。我希望单元名称解析器直接用它们的数值替换单元名称,但我现在很难。我已经设法找到了一种将正则表达式与一个单元格一起使用的方法(灵感来源于),但我不知道如何使它与表达式中的多个单元格名称一起使用。

请注意:将正则表达式用于此方法不是一种正确的方法。像A1这样的简单引用可以成功地替换为计算 值,但当您尝试解析更复杂的表达式(如 交叉图纸参考(=Sheet2!A1,='My sheet'!A1)、三维参考(=Sheet1:Sheet3!A1)、R1C1样式的参考(=R[-1]C3)、定义名称参考(=name)等。 将单元格引用替换为计算值将不允许您计算行(A2)之类的内置函数(结果为2), 它需要引用参数而不是单元格值

我认为你的RPN表格应该扩大到包括简单参考、3d参考等项目。 为类似Excel的表达式创建解析器的最简单方法是使用编译器生成器。例如,看看“编译器生成器Coco/R”(),它有一个java版本