解析这种输入的最佳方法是什么?

时间:2014-02-07 16:32:32

标签: java

我需要评估一些字符串(项目标题),以便决定该项目是否与某些规则匹配。

关于规则,请考虑这样的事情。

((ball | balls) & messi) -ronaldo

意思是,如果标题包含ballballsmessi(但not ronaldo)则表示匹配。

您认为实现这一目标的最佳方式是什么? (规则必须由最终用户编写,语法清晰,无正则表达式)

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以尝试使用简单英语并遵循逻辑规则的内容。

例如 -

(("ball" OR "balls") AND ("messi")) AND NOT ("ronaldo")

基本上,您需要自己的逻辑评估器来解析此表达式并将其评估为true或false。您可能还有另一个程序可以处理用户提供的此类规则,并将它们转换为对您的逻辑评估程序更友好的格式。

答案 1 :(得分:0)

我发现这个库Boolean Expressions并且只是构建了一个包装器来解析关键字并且像魅力一样工作!!