Heim >Backend-Entwicklung >Python-Tutorial >Wie können Sie mithilfe regulärer Ausdrücke und Pyparsing verschachtelte Klammern in Python effektiv extrahieren?
Extraktion verschachtelter Klammern in Python mithilfe von Regex
In Python kann sich das Extrahieren verschachtelter Klammern mithilfe regulärer Ausdrücke als schwierig erweisen. Ein gängiger Ansatz ist die Verwendung der re.compile()-Methode, wie im bereitgestellten Codeausschnitt gezeigt. Diese Methode führt jedoch möglicherweise nicht immer zu den gewünschten Ergebnissen, wenn es um komplexe verschachtelte Konstrukte geht.
Für Situationen mit verschachtelten Klammern bietet ein alternativer Ansatz mit der Pyparsing-Bibliothek mehr Flexibilität. Pyparsing ermöglicht die Erstellung ausgefeilterer Grammatikregeln, wie im Beispiel zu sehen ist:
<code class="python">import pyparsing # make sure you have this installed thecontent = pyparsing.Word(pyparsing.alphanums) | '+' | '-' parens = pyparsing.nestedExpr( '(', ')', content=thecontent)</code>
Die Funktion nestedExpr() definiert eine Grammatik für den Abgleich verschachtelter Klammern. Es benötigt drei Argumente: die öffnenden und schließenden Klammerzeichen und den Ausdruck, der innerhalb der Klammern abgeglichen werden soll.
Hier ist ein Beispiel für die Verwendung der definierten Grammatik:
<code class="python">>>> parens.parseString("((a + b) + c)")</code>
Die Ausgabe dieser Analyse Die Operation ist eine verschachtelte Listendarstellung des übereinstimmenden Ausdrucks:
( # all of str [ ( # ((a + b) + c) [ ( # (a + b) ['a', '+', 'b'], {} ), # (a + b) [closed] '+', 'c' ], {} ) # ((a + b) + c) [closed] ], {} ) # all of str [closed]
Um ein verschachteltes Listenformat des übereinstimmenden Ausdrucks zu erhalten, verwenden Sie die Methode asList():
<code class="python">res = parens.parseString("((12 + 2) + 3)") res.asList()</code>
Dies wird zurückgegeben :
[[['12', '+', '2'], '+', '3']]
Daher können Sie durch die Verwendung der verschachtelten Ausdrucksgrammatik von Pyparsing verschachtelte Klammern innerhalb mathematisch ähnlicher Zeichenfolgen effektiv abgleichen und extrahieren.
Das obige ist der detaillierte Inhalt vonWie können Sie mithilfe regulärer Ausdrücke und Pyparsing verschachtelte Klammern in Python effektiv extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!