用于逻辑运算符的Python正则表达式

2024-09-29 23:25:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个可以接受关系运算符和逻辑运算符的规则系统。在

规则系统中的一个简单表达式可以简单到

EmployeeAgeProperty >= IntegerProperty:27

在这里,我定义了替代EmployeeHireDateProperty的内容,我的规则系统将对其进行评估。假设上面的每个简单表达式的计算结果都是true/false。我的正则表达式应该是

(?P<lhs>[A-Z][a-zA-Z]*Property):{0,1}(?P<lhsPrimitiveValue>[A-Za-z0-9]*)\ *(?P<operator>[><=]|!=|<=|>=|in|not_in)\ *(?P<rhs>[A-Z][a-zA-Z]*Property):{0,1}(?P<rhsPrimitiveValue>[A-Za-z0-9]*)

左侧=左侧
rhs=右侧。在

现在,我想通过逻辑运算符和/或(假设Not与上下文无关)将多个简单表达式组合成复合表达式。在

所以,一个有效的复合表达式应该是

SimpleExpression1 and SimpleExpression2 or SimpleExpression3 其中每个简单的表达式inturn将匹配上述regex。在

我希望我的regex组返回('SimpleExpression1', 'and', SimpleExpression2', 'or', 'SimpleExpression3')

我可以想出这样的办法

([\w\d!=< ]*)\ *(and|or)\ *([\w\d!=< ]*),它将与一个和/或匹配单个复合表达式。但无法进一步扩展。在


Tags: orandin表达式规则系统运算符property

热门问题