passend ich diese Codezeilen für Take Operatoren in Klammern haben:C# regex für sepcific Text in verschachtelten Klammern
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);
Diese Linien funktionieren nicht für verschachtelte Klammern.
Zum Beispiel; es arbeitet für diesen Eingang:
X1 OR (X2 AND X3 AND X4 AND X5) OR X6
Es gib mir dieses Ergebnis: OR OR
Aber, wenn meine Eingabe mehr als eine verschachtelte Klammern hat, funktioniert es falsch.
Für diesen Eingang:
X1 OR (X2 AND(X3 AND X4) AND X5) OR X6
ich für Ergebnis nehmen wollen OR OR aber er druckt ODER UND ODER.
Obwohl es zwei (
Zeichen in Zeichenfolge gibt, wenn es die Verarbeitung nach dem ersten Zeichen )
endet.
Wie kann ich mein Regex-Muster anpassen?
Sie keine regulären Ausdrücke für Hierarchien verwenden sollten (Code; XML et al) – MickyD
Siehe auch https://stackoverflow.com/questions/19596502/regex-nested-parentheses. –
Der zum Schließen dieser Frage verwendete ist kein vollständiges Duplikat, obwohl er das Konzept erklärt und eine fast exakte Lösung bietet. –