2011-04-24 6 views

Respuesta

3

¿Se puede usar Combine?

grammar = Combine(Literal("from") + Literal(":") + Word(alphas)) 

Entonces:

EDITAR en respuesta a su comentario.

¿De verdad?

>>> grammar = pyparsing.Combine(Literal("from") + Literal(":") + Word(pyparsing.alphas)) 
>>> grammar.parseString('from : mary') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/pymodules/python2.6/pyparsing.py", line 1076, in parseString 
    raise exc 
pyparsing.ParseException: Expected ":" (at char 4), (line:1, col:5) 
>>> grammar.parseString('from:mary') 
(['from:mary'], {}) 
+0

'Combine' no arroja' ParseException' para 'from: mary'. Quiero que se arroje el error. –

+0

Funciona. Estaba atrapando la excepción. –

+2

Además, lea el método 'leaveWhitespace' para suprimir el salto de espacio en blanco para expresiones específicas. Llame a este método en cualquier expresión que deba coincidir sin saltear espacios, en su caso el ':' y la palabra que contiene el nombre. – PaulMcG

Cuestiones relacionadas