Синтаксический анализ правил нечеткой логики

Есть некоторые правила для нечеткой логики:

ЕСЛИ 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|$))
Другие вопросы по тегам