я эти строки кода для взятия операторов в круглых скобках:C# регулярное выражение для сопоставления sepcific текст внутри вложенных скобок
string filtered = Regex.Replace(input, "\\(.*?\\)", string.Empty);
var result = filtered.Split(new[] { ' ' },
StringSplitOptions.RemoveEmptyEntries)
.Where(element => element == "OR" || element == "AND");
string temp = string.Join(" ", result);
Эти линии не работают для вложенных скобок.
Например, он работает на этом вход:
X1 OR (X2 AND X3 AND X4 AND X5) OR X6
Это дает мне этот результат: ИЛИ ИЛИ
Но, когда мой вклад имеет более чем вложенные скобки, он работает неправильно.
Для этого входа:
X1 OR (X2 AND(X3 AND X4) AND X5) OR X6
Я хочу взять за результат ИЛИ ИЛИ, но он печатает ИЛИ И ИЛИ.
Хотя в строке есть два знака (
, когда он завершает обработку после согласования первого символа )
.
Как настроить шаблон регулярного выражения?
Вы не должны использовать регулярные выражения для иерархий (код, XML и др) – MickyD
Смотрите также https://stackoverflow.com/questions/19596502/regex-nested-parentheses. –
Тот, который использовался для закрытия этого вопроса, не является полным дубликатом, хотя он объясняет концепцию и обеспечивает почти точное решение. –