Python: Verschachtelte Klammern mit Regex abgleichen
Verschachtelte Klammern abzugleichen ist eine häufige Aufgabe beim Umgang mit mathematischen Ausdrücken. Die Verwendung regulärer Ausdrücke bringt jedoch Einschränkungen mit sich, wenn es um die Handhabung verschachtelter Konstrukte geht. Während Sie möglicherweise versucht haben, dieses Problem mit re.compile('(. )') zu lösen, werden nur die äußersten Klammern erfasst.
Übernahme von PyParsing für verschachtelte Konstrukte
Anstatt reguläre Ausdrücke zu verwenden, ist die Verwendung von PyParsing ein geeigneterer Ansatz, einer Bibliothek, die speziell für das Parsen komplexer Textstrukturen entwickelt wurde. PyParsing verwendet eine rekursive Parsing-Technik, die es ihm ermöglicht, verschachtelte Konstrukte effektiv zu verarbeiten.
Hier ist ein Beispiel für die Verwendung von PyParsing:
<code class="python">import pyparsing thecontent = pyparsing.Word(pyparsing.alphanums) | '+' | '-' parens = pyparsing.nestedExpr( '(', ')', content=thecontent)</code>
Dies definiert zwei Elemente: den Inhalt, der alphanumerischen Zeichen entspricht, '' , und '-' und Parens, die in Klammern eingeschlossene verschachtelte Ausdrücke darstellen.
Beispielverwendung
Um dies zu verwenden, können Sie diesem Beispiel folgen:
<code class="python">parens.parseString("((a + b) + c)")</code>
Erwartete Ausgabe:
<code class="text">( [ ( ['a', '+', 'b'], {} ), '+', 'c' ], {} )</code>
Daten im Listenformat extrahieren
Wenn Sie lieber die verschachtelte Liste extrahieren möchten, Sie können Folgendes verwenden:
<code class="python">res = parens.parseString("((12 + 2) + 3)") res.asList()</code>
Ausgabe:
<code class="text">[[['12', '+', '2'], '+', '3']]</code>
Durch die Verwendung von PyParsing können Sie verschachtelte Klammern innerhalb komplexer Textstrukturen effektiv abgleichen und extrahieren.
Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von PyParsing verschachtelte Klammern in Python abgleichen und extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!