• Domingo 17 de Noviembre de 2024, 16:39

Autor Tema:  Imprimir por pantalla :: lo que sea :: [Resuelto]  (Leído 2013 veces)

soasada

  • Nuevo Miembro
  • *
  • Mensajes: 1
  • Nacionalidad: es
    • Ver Perfil
Imprimir por pantalla :: lo que sea :: [Resuelto]
« en: Sábado 3 de Noviembre de 2012, 13:28 »
0
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.
« última modificación: Sábado 3 de Noviembre de 2012, 22:04 por soasada »

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re:Imprimir por pantalla :: lo que sea :: [Resuelto]
« Respuesta #1 en: Miércoles 7 de Noviembre de 2012, 16:59 »
0
Hola, bienvenido al foro.
Gracias por dejar la solución.
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com