[Python-es] Presentación y duda con módulo re

Jose Caballero jcaballero.hep en gmail.com
Mar Abr 2 00:53:55 CEST 2013





On Apr 1, 2013, at 18:30, Javier Alonso <javieralonsogil en gmail.com> wrote:

> Saludos a todos,
> 
> Me llamo Javier, trabajo como administrador de sistemas y estoy aprendiendo python por el gran juego que puede dar en este área.
> 
> Ahora mismo estoy desarrollando una herramienta que me permita trabajar fácilmente con ficheros de zonas de Bind, pero estoy teniendo problemas con el módulo re.
> 
> Tengo la siguiente cadena:
> 
> 
> @       IN      SOA     ns1.nameserverprimario.com. admin.dominio.com. (
>                         2013022101       ; serial, todays date + todays serial #
>                         7200              ; refresh, seconds
>                         540              ; retry, seconds
>                         604800              ; expire, seconds
>                         86400 )            ; minimum, seconds
> 
> Aunque podría ser la siguiente también: 
> 
> @       IN      SOA     ns1.nameserverprimario.com. admin.dominio.com. (  2013022101     7200  540  604800    86400 )    
> 
> Estoy intentando crear un método que le pases la cadena, y devuelva un diccionario del estilo:
> 
> Zona : @
> Tipo : SOA
> Servidor primario: ns1.nameserverprimario.com.
> Correo: admin.dominio.com.
> Serial: 2013022101
> Refresh: 7200
> Retry: 540
> Expire: 7200
> TTL: 86400
> 
> Estoy atascado con las regexp. De momento quiero separar cada elemento de la siguiente cadena "@       IN      SOA     ns1.nameserverprimario.com. admin.dominio.com."
> 
> grupos = re.match('^([@]|[a-zA-z0-9\.]*\.)(\s+)IN(\s+)SOA(\s+)([@]|[a-zA-z0-9\.]*\.)(\s+)([@]|[a-zA-z0-9\.]*\.)','@       IN      SOA     ns1.nameserverprimario.com. admin.dominio.com.')
> print(grupos.group())
> 
> 
> Muchas gracias por vuestra ayuda,
> Javier Alonso 
> 
> 
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/



Se suele decir que si tienes un problema y lo quieres arreglar con RE entonces tienes dos problemas.
Si sabes de antemano el número de campos en el input, su formato y su posición, quizás te resulte más fácil partir el string con split().

Jose
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130401/41502f82/attachment.html>


Más información sobre la lista de distribución Python-es