Рассмотрим следующую строку в качестве входных данных. Второе и третье И являются избыточными. Я хочу удалить его.
Вход
AND(AND(string("test message")),filter(AND(OR(source:string("XYZ"),source:string("ABC")))))
Я хочу, чтобы вывод был как
AND(string("test message"),filter(OR(source:string("XYZ"),source:string("ABC"))))
В основном во входной строке используется оператор AND, но указан только один аргумент, что делает ввод недопустимой строкой. Я хочу изменить строку, чтобы удалить И, чтобы в ней был указан только один аргумент.
Каким должен быть лучший подход. Регулярные выражения или синтаксический анализ строк. Моя строка может быть очень длинной.
Я проверил несколько сообщений и, похоже, регулярное выражение не рекомендуется, особенно если оно слишком много вложено.
Пожалуйста, предложите лучший способ справиться с этим случаем.
Некоторый ввод и их вывод
1. И(строка(""тестовое сообщение""))
string(""test message"")
И(И(строка(""тестовое сообщение")),фильтр(И(ИЛИ(источник:строка(""XYZ"")),источник:строка(""ABC""))))))
И(строка(""тестовое сообщение""),фильтр(ИЛИ(источник:строка(""XYZ"")),источник:строка(""ABC""))))
И(строка(""тестовое сообщение""),фильтр(ИЛИ(источник:строка(""XYZ"")),источник:строка(""ABC"")))) И(строка(""тестовое сообщение"" ),фильтр(ИЛИ(источник:строка(""XYZ"")),источник:строка(""ABC""))))
Анну
AND
? ничего больше или меньше? - person aelor   schedule 28.03.2014regex
. Вам понадобится специальная функция для этой цели - person sshashank124   schedule 28.03.2014