Pregunta

pitón / pyparsing

Cuando uso el método scanString, que está dando la ubicación de inicio y final de la ficha emparejado, en el texto.

por ejemplo.

line = "cat bat"
pat = Word(alphas)
for i in pat.scanString(line):
    print i

Me sale el siguiente:

((['cat'], {}), 0, 3)
((['bat'], {}), 4, 7)

Pero la ubicación final gato debe ser "2" derecho? Por la que se informa que el próximo punto que el punto final?

¿Fue útil?

Solución

Esto es consistente con las convenciones [begin:end] loncheado de Python, donde el "fin" es el índice del carácter siguiente. Al poner al final como la siguiente ubicación, es muy sencillo para extraer la subcadena coincidente con los valores devueltos:

for t,start,end in pat.scanString(line):
    print line[start:end]

Se puede ver cómo esto se utiliza si nos fijamos en el código fuente pyparsing para la ejecución de transformString.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top