解析正则表达式模糊逻辑规则

parse regex fuzzy logic rules

有一些模糊逻辑字符串规则,例如:

IF Input1.A AND Input2.B Then Output1.A

IF Input1.A AND (NOT Input2.B) AND Input3.C Then Output1.A

我想在 AND 和 Then 之后捕获组。

并用括号捕获 (NOT Input2.B)。

以及 IF 之后。

类似于this pattern:

(?:IF|AND|THEN\s*)(?<token>.+?)(?=\s*(?:AND|THEN|$))

"match a keyword, then reluctantly match anything, only up to the next AND/THEN/EOL"

这将适用于 Python:

(?:IF|AND|THEN\s*)(?P<token>.+?)(?=\s*(?:AND|THEN|$))