Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: daryo en 16 Enero 2014, 01:39 AM

Título: [ayuda][python]problema con expresiones regulares
Publicado por: daryo en 16 Enero 2014, 01:39 AM
el problema es el siguiente
si tengo una cadena como esta
Código (python) [Seleccionar]
n=":hola soy-una cadena : con : je"

al intentar usar exp regulares diciendole que capture todo lo que esta entre los ":"

Código (python) [Seleccionar]
re.match(":(.+):",n)  

la salida es:
Código (python) [Seleccionar]
hola soy-una cadena : con

lo que quiero es:
Código (python) [Seleccionar]
hola soy-una cadena
que puedo hacer?
Título: Re: [ayuda][python]problema con expresiones regulares
Publicado por: fary en 16 Enero 2014, 02:57 AM
Sería así:

Código (python) [Seleccionar]
re.match(":(.+?):",n) 

El mismo código en perl:

Código (perl) [Seleccionar]
use v5.16;

$_ = ":hola soy-una cadena : con : je";

/:(.+?):/;

say $1;
Título: Re: [ayuda][python]problema con expresiones regulares
Publicado por: daryo en 16 Enero 2014, 04:01 AM
muchas gracias  ;D! no estoy seguro porque funciona pero soluciono el problema jeje
Título: Re: [ayuda][python]problema con expresiones regulares
Publicado por: Once en 16 Enero 2014, 04:38 AM
Cita de: daryo en 16 Enero 2014, 04:01 AM
muchas gracias  ;D! no estoy seguro porque funciona pero soluciono el problema jeje

? en las expresiones regulares se usa para indicar un caracter que puede o no aparecer o, como en este caso, para seleccionar la menor cadena que encuentra ya que por defecto la expresión regular coincide con la cadena más grande que encuentra.

Saludos!