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(")")) ) 
  • Pyparsing: Beispiel JSON-Parser fehlschlägt für Liste der Dicts
  • Änderungsstring beim Pairing
  • PyParsing Nicht-gieriges Match
  • PyParsing: Ist diese korrekte Verwendung von setParseAction ()?
  • Analysieren eines komplexen logischen Ausdrucks im Pyparsing in einer binären Baumart
  • Pyparsing: extrahieren variable Länge, variablen Inhalt, variable Whitespace Teilstring
  • Brauchen Sie Hilfe zu verstehen, pyparsing Verhalten
  • Wie kann ich Einbuchtungen und Widder mit Pyparsing analysieren?
  • Pyparsing - wo die Reihenfolge der Token in unvorhersehbaren
  • Analysieren von verschachtelten Funktionsaufrufen unter Verwendung von pyparsing
  • Pyparsing Beispiel
  • Python ist die beste Programmiersprache der Welt.