Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich mithilfe von PyParsing verschachtelte Klammern in Python abgleichen und extrahieren?

Wie kann ich mithilfe von PyParsing verschachtelte Klammern in Python abgleichen und extrahieren?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 06:43:29613Durchsuche

How Can I Match and Extract Nested Parentheses in Python Using PyParsing?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn