[ayuda][python]problema con expresiones regulares

Iniciado por daryo, 16 Enero 2014, 01:39 AM

0 Miembros y 1 Visitante están viendo este tema.

daryo

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?
buenas

fary

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;
Un byte a la izquierda.

daryo

muchas gracias  ;D! no estoy seguro porque funciona pero soluciono el problema jeje
buenas

Once

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!