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

Linda Hamilton
Freigeben: 2024-11-02 06:43:29
Original
627 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Erwartete Ausgabe:

<code class="text">(
  [
    (
      ['a', '+', 'b'], {}
    ),
    '+',
    'c'
  ], {}
)</code>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ausgabe:

<code class="text">[[['12', '+', '2'], '+', '3']]</code>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!