判断一个如下类型的逻辑关键词, 是否在文本里面
a and b,
a or b,
a and b and c and d,
a or b or c or d,
(a and b) or (c and d)
(a or b) and (c or d)
and or () 三种运算逻辑,
目前通过 Python 正则和递归实现了一个简单的版本, 基本思路是, 先把逻辑运算解析为 关键词的列表, 然后在判断是否在 文本 里, 例如,
(a and b) or (c and d) 解析为 [(a, b), (c,d)] 
a or b or (c and d) 解析为 [(a,), (b,), (c,d)]
然后迭代通过 in 操作来判断
目前代码的状态是 shit but work well, 请问各位大佬, 有好的解决方案吗?
|  |      1lxml      2020-12-18 17:12:50 +08:00 via Android 两周自制脚本语言 | 
|  |      2HarveyTvT      2020-12-18 17:23:11 +08:00 grep OR grep -E 'pattern1|pattern2' filename grep AND grep -E 'pattern1' filename | grep -E 'pattern2' | 
|  |      4oott123      2020-12-18 18:33:27 +08:00 | 
|  |      5autoxbc      2020-12-18 18:47:59 +08:00 用编程语言原样实现不就好了,为什么还要搞成一个「引擎」?用这个引擎的人还要学一下描述这个引擎输入的 DSL,那直接用高级语言作为 DSL,去掉引擎不好么 | 
|      7lzxz1234      2020-12-18 19:17:53 +08:00 | 
|  |      8black11black      2020-12-18 19:29:19 +08:00 via Android 就一个简单的压栈弹栈问题。。。至于么 |