Pyparsing: Ausdruck in Strings beliebiger Länge
Verfasst: Freitag 4. Januar 2013, 14:26
Hallo... ich bin dabei einen boost::spirit Ausdruck unter Python zu implementieren und Versuche eine eigentlich sehr simple Grammatik mittels pyparsing zu formulieren... das klappt aber nicht: er parst den ersten Ausdruck (logisch, strings beliebiger Länge) bis zu Ende und kommt dann nicht weiter. Er geht nicht alle Pfade durch, ob er einen Match erhält.
Prinzipiell soll nur ein Identifier im String gesucht wird, der in der ersten Zeile beschrieben ist: z.B. s00e00
Alles davor möchte ich als einen Ausdruck bekommen, und alles danach auch. Die Frage ist: wie mache ich das? Hat jemand eine Idee wo das Problem ist?
Code: Alles auswählen
ident = MatchFirst( Group( CaselessLiteral( 's' ) + Word( nums, exact=2 ) + CaselessLiteral('e') + Word( nums, exact=2 ) ) )
grammar = OneOrMore( Word( printables ) ) + ident + OneOrMore( Word( printables ) )
Alles davor möchte ich als einen Ausdruck bekommen, und alles danach auch. Die Frage ist: wie mache ich das? Hat jemand eine Idee wo das Problem ist?