Ich bin neu zu erfassen, um mit pyparsing (Python 2.7) und hat ein paar Fragen zu diesem Code:pyparsing einen Text zu entfernen und wie Sie Text mit Leerzeichen
import pyparsing as pp
openBrace = pp.Suppress(pp.Literal("{"))
closeBrace = pp.Suppress(pp.Literal("}"))
ident = pp.Word(pp.alphanums + "_" + ".")
otherStuff = pp.Suppress(pp.Word(pp.alphanums + "_" + "." + "-" + "+"))
comment = pp.Literal("//") + pp.restOfLine
messageName = ident
messageKw = pp.Suppress("msg")
messageExpr = pp.Forward()
messageExpr << (messageKw + messageName + openBrace +
pp.Optional(otherStuff) + pp.ZeroOrMore(messageExpr) +
pp.Optional(otherStuff) + closeBrace).ignore(comment)
print messageExpr.parseString("msg msgName1 { msg msgName2 { some text } }")
Ich verstehe, don `t wirklich, warum es entfernt der Text "msg" im inneren msgName2. Die Ausgabe lautet: [ 'msgName1', 'Name2'] aber ich erwartete: [ 'msgName1', 'msgName2']
Darüber hinaus habe ich frage mich, wie alle anderen Text zu erfassen ("some text") einschließlich Leerzeichen zwischen den Klammern.
Vielen Dank im Voraus
Danke für die Hilfe und die Ermutigung. Ich habe eine andere Frage, aber es ist anders, also werde ich eine neue Frage beginnen. – XYZ