Например,Каков самый быстрый способ сделать эту замену паттен строки на основе логических отношений в Python?
1. str1 = 'A>1 and A>=3 and B<2 and B<=3 and B<1 ...', should be substituted to:
str1 = 'A>=3 and B<1 ...';
2. str2=['A=1 and B<=2 ...', 'A=1 and B>2 ...'], should be substituted to:
str2=['A=1 ...'], where B is skipped
А, В может быть любая длина идентификаторы юридического Python. Существует неизвестное количество логических операндов в str1 и str2.
Обычный поиск регулярного выражения подход довольно сложно решить эту проблему. Любая идея взлома?
EDIT:
Для того, чтобы этот вопрос просто, давайте рассмотрим 'и' только операция, и все операнды сортируются в виде строки, а именно
'A<x and A<y and A<z' will always appear next to each other
Я действительно не вижу, как вы можете решить это с помощью регулярного выражения. Я бы сказал, вам нужно проанализировать ваши строки (этот шаг можно выполнить с помощью регулярного выражения, если ваш формат достаточно ограничен) и запустить простой интерпретатор результата. – fjarri