Синтаксический анализ правил нечеткой логики
Есть некоторые правила для нечеткой логики:
ЕСЛИ Input1.A И Input2.B Тогда Output1.A
ЕСЛИ Input1.A И (НЕ Input2.B) И Input3.C Тогда Output1.A
Я хочу захватить группы после И и после.
а также захватывать (НЕ Input2.B) с его круглыми скобками.
а также после ИФ.
1 ответ
Решение
Примерно так:
(?:IF|AND|THEN\s*)(?<token>.+?)(?=\s*(?:AND|THEN|$))
"сопоставить ключевое слово, а затем неохотно сопоставить что-либо, только до следующего AND/THEN/EOL"
и это будет работать в Python:
(?:IF|AND|THEN\s*)(?P<token>.+?)(?=\s*(?:AND|THEN|$))