Wie man Klammern / Klammern in pyparsing passt

Ich habe ein Grammatik-Token angegeben als:

list_value = Suppress(oneOf("[ (")) + Group( delimitedList(string_value | int_value))("list") + Suppress(oneOf("] )")) 

Allerdings erlaubt dies offensichtlich (foo, bar]

Wie erzwinge ich, dass die Listen, die Zeichen öffnen und schließen, übereinstimmen müssen?

One Solution collect form web for “Wie man Klammern / Klammern in pyparsing passt”

Sie machen eine Liste zwischen zwei Regeln: eine für Klammern und eine für eckige Klammern. Danke für das Pairing. Ich mag das. Meine Antwort auf Ihre Frage ist:

 delim_value = Group(delimitedList(string_value | int_value))("list") list_value = Or( (Suppress("[") + delim_value + Suppress("]"), Suppress("(") + delim_value + Suppress(")")) ) 
  • Parsing eines TCL-ähnlichen Textes
  • Änderungsstring beim Pairing
  • Teilauswertung mit pyparsing
  • Pyparsing: Token-Standort im Ergebnisnamen erhalten
  • `Pyparsing`: Iteration über` ParsedResults`
  • Wie kann ich Einbuchtungen und Widder mit Pyparsing analysieren?
  • Python: Wie am besten eine einfache Grammatik zu analysieren?
  • PyParsing Nicht-gieriges Match
  • Stack Overflow bei Pyparsing Ada 2005 Scoped Identifier mit Referenzhandbuch Grammatik
  • Kontext in pyparsing parse Aktionen neben globals
  • Kann nicht pyparsing Dict (), um das verschachtelte Wörterbuch zurückzugeben
  • Python ist die beste Programmiersprache der Welt.