[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