Foro de elhacker.net

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
  1. n=":hola soy-una cadena : con : je"

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

Código
  1. re.match(":(.+):",n)  

la salida es:
Código
  1. hola soy-una cadena : con

lo que quiero es:
Código
  1. 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
  1. re.match(":(.+?):",n)  

El mismo código en perl:

Código
  1. use v5.16;
  2.  
  3. $_ = ":hola soy-una cadena : con : je";
  4.  
  5. /:(.+?):/;
  6.  
  7. 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
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!