java - 我可以使用什么输入文件格式来创建方程式?

标签 java c++ excel input vba

我正在使用监控软件根据大量网络资源和方程式查找有关特定主题的文章。方程式如下:

(K1 AND K2) OR K3 NOT "K4" OR "K5 K6"~5

上面的示例说明了几乎所有可能的运算符,~ 是邻近运算符,当找到两个单词并且最多由 n 个单词分隔时请求匹配。

给你一个更精确的例子(?是一个字符的通配符;*是任意数量的字符)

("Game of Thrones" OR "George R. R. Martin") AND (Targaryen? OR Baratheon? NOT Lannister? OR "mother dragon?"~5)

我想做的是提供一个脚本或程序,它可以采用关键字并形成等式,而不必写出所有的括号。我认为这将使两个方程之间的比较更容易,并降低错误率。

我首先想到的是带有默认“OR”运算符的 Excel 工作表:

keyword | logical operator | depth of parentheses

但这并不适用于所有组合——程序无法猜测两条线之间的深度何时恒定,而实际上是 -1 +1

我想要一个最简单的输入,因为我可能会将它发送给普通用户。你有什么主意吗 ?然后我可以用 C++、Java 甚至 VBA 来做解释器。

编辑/为了澄清,我正在寻找一种允许最终用户不写括号并且只关心他们的关键字和它们之间的关系的输入格式。

最佳答案

您要查找的是将字符串输入与给定模式相匹配。这是 CS 中一个非常普遍的问题,regular expressions 的概念很好地解决了这个问题。通常称为正则表达式。

然而,编写正则表达式并非易事,尤其是对于新手而言。即使是经验丰富的程序员有时也难以准确地编写出他们想要的正则表达式。

有一个有用的网站可以生成正则表达式 here .它需要一些时间来理解它是如何工作的,但是它在之后是一个令人难以置信的节省时间的方法。

关于java - 我可以使用什么输入文件格式来创建方程式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15699656/

相关文章:

java - XPages:在文档集合中导航

excel - 具有多个条件的四个日期的平均值

python - xlutils.copy [python 2.7 - excel]

java - xml 中的 IntelliJ 14.1 日志记录输出

java - fragment 不会显示多个项目

java - 如何在 Spring 运行时设置 bean 限定符名称

c++ - 模板重载(不同。参数数量)

c++ - 在我的 STL 容器映射中找不到特定键

c++ - Eigen 中的高效矩阵转置矩阵乘法

excel - Application.WorksheetFunction.VLookup 无匹配错误