[pyar] Ayuda con lxml y expresión regular

Fernando Copa copa.fernando en gmail.com
Vie Abr 8 19:08:38 ART 2016


Hola muy buenas a todos/as.
¿Alguien me podría ayudar con esta duda sobre expresion regular?
Tengo que validar un DTD y uso el módulo de lxml.etree.parse para leer el
dtd.xml. Luego al tratar de usar el método lxml.etree.XMLSchema() me tira
un error de una expresión regular no valida. En código es algo asi:
archivoDTD.xml:
...
167 <xs:simpleType name="Precio">
168   <xs:restriction base="xs:string">
169       <xs:pattern value="^-{0,1}(?!\,?$)\d{0,12}(\,\d{0,2})?$"/>
170    </xs:restriction>
171 </xs:simpleType>
...
en ipython:
>>> from lxml import etree
>>> esquema_doc = etree.parse('archivoDTD.xml')
>>> dtd = etree.XMLSchema(esquema_doc)

---------------------------------------------------------------------------
XMLSchemaParseError                       Traceback (most recent call last)
<ipython-input-9-2c52f8b9d13b> in <module>()
----> dtd = etree.XMLSchema(esquema_doc)

src/lxml/xmlschema.pxi in lxml.etree.XMLSchema.__init__
(src/lxml/lxml.etree.c:204467)()

XMLSchemaParseError: Element '{http://www.w3.org/2001/XMLSchema}pattern':
The value '^-{0,1}(\?!\,\?$)\d{0,12}(\,\d{0,2})?$' of the facet 'pattern'
is not a valid regular expression., line 169

Lo que entiendo de expresión regular es:
-{1,0}    # cero o un signo -
(?!\,?$)    # tengo duda lo que hace
\d{0,12}    # cero dígitos hasta 12 dígitos
(\,\d{0,2})?    # entiendo que es opcional pero \, no sé lo que quiere
decir.

Desde ya muchas gracias.

-- 
*Fernando Copa*

/*
 ** San Salvador de Jujuy - Jujuy*
 */
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160408/25a19e20/attachment.html>


Más información sobre la lista de distribución pyar