Muchas gracias.
Enviado con MailTrack <https://mailtrack.io/install?source=signature&lang=es&[email protected]&idSignature=23> El 5 de junio de 2014, 19:36, José Sabater Montes <[email protected]> escribió: > > Hola, > > El 05/06/2014, a las 18:08, Jose M.Allegue <[email protected]> escribió: > > > No entiendo esta linea de código: > > alt = re.findall("(?<= )(\d{1,2}) (\d{1,2}\.\d{1,2}) ([NS]),\s+(\d{1,2}) > (\d{1,2}\.\d{1,2}) ([EW]).*", line) > > Jeje, es la expresión regular ( > https://es.wikipedia.org/wiki/Expresi%C3%B3n_regular). Son un pequeño > mundo en sí mismas pero pueden ser muy potentes en estos casos. > Lo que hace es introducir en “alt" una lista (o varias) con los valores > que extrae de la línea “line” que se ajustan a las reglas de la expresión > regular indicada. La expresión regular en sí es la cadena "(?<= )(\d{1,2}) > (\d{1,2}\.\d{1,2}) ([NS]),\s+(\d{1,2}) (\d{1,2}\.\d{1,2}) ([EW]).*”. Quiero > mencionar que hay otras alternativas que podrían funcionar e incluso > adaptarse mejor pero esta es la que se me ha ocurrido. > > Si la miramos por partes: > * "(?<= )" esto indica que lo que viene detrás empezaría con un carácter > en blanco. > * "(\d{1,2})" esto extrae uno o dos dígitos como primer elemento de la > lista. > * " (\d{1,2}\.\d{1,2})" después de un espacio en blanco extrae uno o dos > dígitos seguidos de un punto y uno o dos dígitos más. > * " ([NS])" después de otro espacio extrae un carácter “N" o “S”. > * ",\s+(\d{1,2})" después de una coma y un número indeterminado de > espacios extrae uno o dos dígitos. > * " (\d{1,2}\.\d{1,2})" de nuevo se extrae una combinación como la de > antes. > * " ([EW])" después de un espacio extrae un carácter “E" o “W”. > * “.*" el resto de la cadena puede ser cualquier cosa. > Al final tienes en alt una lista de listas de 6 elementos. En tu caso alt > solo tiene un elemento, ya que solo encuentra el patrón para las > coordenadas una vez como mucho en cada línea. Este elemento se compone de > los grados de latitud, minutos decimales de latitud, N o S, grados de > longitud, minutos decimales de longitud y E o W. > > Un saludo. > > _______________________________________________ > Python-es mailing list > [email protected] > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > -- jose m allegue [email protected]
_______________________________________________ Python-es mailing list [email protected] https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
