• Viernes 19 de Abril de 2024, 04:04

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - soasada

Páginas: [1]
1
Python / Imprimir por pantalla :: lo que sea :: [Resuelto]
« en: Sábado 3 de Noviembre de 2012, 13:28 »
Hola a todos, soy nuevo en el foro. Viendo que tiene bastantes secciones y gente dedicada me dispongo a postear un problema que tengo, al que no le pongo solución.

Quiero hacer un script en Python que lo que haga es, que encuentre lo que sea entre :: y :: , lo imprima por pantalla. En perl se hacerlo con una expresión regular, he estado buscando y no encuentro nada parecido...

En pseudocódigo sería algo así:

Si content contiene algo entre :: y ::
         imprime $1

No se si me he explicado bien. Espero que puedan echarme una mano, y felicidades por el foro ;).

Un saludo y gracias de antemano.


EDIT:

Bueno ya he podido resolver el problema, pongo aquí la solución por si a alguien le sirve.

Primero probé con esto:

Código: [Seleccionar]
#!/usr/bin/env python
import re

s = "::Hola@mundo.hola::"
prueba = re.search('(?<=::)\S+', s)
print prueba.group(0)

La expresión regular lo que hacía era buscar en la variable s una cadena que empezara por :: y a continuación imprimía todo lo que tenía detrás de ::. \S lo que le dice a la expresión es que coja cualquier carácter que no sea un espacio en blanco. Equivale a [^ \t\n\r\f\v].

Pero la salida era:

Código: [Seleccionar]
:~ Hola@mundo.hola::

Y yo no quería que salieran ::.

Para que imprima todo lo que encuentre en una cadena entre :: y :: , lo hice así:

Código: [Seleccionar]
#!/usr/bin/env python

s = "::Hola@mundo.hola::"
print s.split('::')[1]

y devolvía:

Código: [Seleccionar]
Hola@mundo.hola

Un saludo a todos.

Páginas: [1]