在Python(有或没有Regex)中对某些术语进行错误检查字符串的好方法是什么?

时间:2018-02-08 03:51:25

标签: python regex information-retrieval

我在IR系统中使用“AND”,“OR”或“NOT”来处理一些布尔查询,并且想知道如何检查无效查询。例如,这些查询将无效:

  

“tom OR”,“tom NOT”,“beans AND OR beans”,“NOT AND mad”,“(猫和   狗“[自(不完整)]等...

这些术语无效,因为布尔查询每边需要2个“单词”(除非我们没有)。有关这些事情的错误检查的提示吗?我迷失了,想要一个方向或什么的。

谢谢!

1 个答案:

答案 0 :(得分:2)

最好的方法可能是将查询解析为某种语法树。因为它非常简单,你可以自己编写解析器。您也可以使用pyparsing之类的东西来处理这个问题。

使用正则表达式可能会非常痛苦 - 它们不具有上下文相关性,因此您很快就会在this situation中结束。