Wie kann ein rekursiver Regexp in Python umgesetzt werden?

Ich bin interessiert, wie man rekursive Regexp Matching in Python implementieren kann (ich habe keine Beispiele gefunden: (). Zum Beispiel wie würde man einen Ausdruck schreiben, der mit "bracket balanced" String wie "foo (bar (bar (foo) ) (Foo1) bar1 "

  • Abflachen einer Liste rekursiv
  • Rekursive Methode für Klammern, die [python]
  • Wie finde ich die Anzahl der verschachtelten Listen in einer Liste?
  • Verbeugung einer rekursiven Funktion zu einem Schwanz rekursiv in Python
  • Wie kann Memoisierung auf diesen Algorithmus angewendet werden?
  • Wie finde ich alle Spiele zu einem regulären Ausdruck in Python?
  • Python - Merge Sort Rekursive Algorithmus
  • Rekursive Thread-Erstellung in Python
  • 4 Solutions collect form web for “Wie kann ein rekursiver Regexp in Python umgesetzt werden?”

    Du könntest pyparsing benutzen

    #!/usr/bin/env python from pyparsing import nestedExpr import sys astring=sys.argv[1] if not astring.startswith('('): astring='('+astring+')' expr = nestedExpr('(', ')') result=expr.parseString(astring).asList()[0] print(result) 

    Es läuft:

     % test.py "foo(bar(bar(foo)))(foo1)bar1" ['foo', ['bar', ['bar', ['foo']]], ['foo1'], 'bar1'] 

    Das ist eine alte Frage, aber für die Leute, die hierher kommen, suchen:

    Es gibt ein alternatives Regex-Modul für Python, das rekursive Muster unterstützt: https://pypi.python.org/pypi/regex

    Und es hat eine Menge mehr schöne Verbesserungen auf re .

    Du kannst es nicht mit einem Regexp machen. Python unterstützt keine rekursive Regexp

    Leider glaube ich nicht, dass Pythons Regexps rekursive Muster unterstützen.

    Du kannst es wohl mit so etwas wie pyparsing punkten: http://pyparsing.wikispaces.com/

    Python ist die beste Programmiersprache der Welt.