J'essaye d'analyser certaines fonctions arguments avec PyParsing mais j'ai du mal à obtenir la bonne syntaxe. A savoir, étant donné:Capture des parenthèses littérales entre parenthèses dans pyparsing
str = "(key=val())"
Je voudrais l'analyseur pour revenir ['key', 'val()']
.
J'ai essayé de faire fonctionner ceci avec le code suivant; les appels .suppress()
sont volontairement omis pour plus de clarté.
ob = Literal("(")
cb = Literal(")")
key = Word(alphas)
value = Word(alpha + "()")
parser = ob + key + "=" + value + cb
print parser.parseString(str)
mais bien sûr, il correspond également à la parenthèse fermante finale et donc j'obtiens une exception ParseException.
Existe-t-il une solution élégante à cela? Par exemple, j'ai regardé nestedExpr
mais dans ce cas ce n'est pas strictement une imbrication puisque je veux que le val()
soit traité comme un littéral. De même this question fait allusion au problème mais ne donne pas de solution.
Excellent - merci pour la clarification et le bon logiciel! – jkeirstead