我需要评估一些字符串(项目标题),以便决定该项目是否与某些规则匹配。
关于规则,请考虑这样的事情。
((ball | balls) & messi) -ronaldo
意思是,如果标题包含ball
或balls
和messi
(但not ronaldo
)则表示匹配。
您认为实现这一目标的最佳方式是什么? (规则必须由最终用户编写,语法清晰,无正则表达式)
谢谢!
答案 0 :(得分:0)
您可以尝试使用简单英语并遵循逻辑规则的内容。
例如 -
(("ball" OR "balls") AND ("messi")) AND NOT ("ronaldo")
基本上,您需要自己的逻辑评估器来解析此表达式并将其评估为true或false。您可能还有另一个程序可以处理用户提供的此类规则,并将它们转换为对您的逻辑评估程序更友好的格式。
答案 1 :(得分:0)
我发现这个库Boolean Expressions并且只是构建了一个包装器来解析关键字并且像魅力一样工作!!