Expresion Regular en una cadena

Roberto Bonvallet rbonvall en alumnos.inf.utfsm.cl
Mar Ene 3 14:25:53 CLST 2006


Jose Felipe Sanhueza Paredes escribio:
> Cual es mi problema:
> me llega un textarea a traves de un formulario de esta forma:
> hola a todos, aqui les dejo [mis fotos], espero q las disfruten. fui a esta
> [cabaña].
> debo hacer algo similar al lenguaje wiki, es decir, donde aparezcan los
> corchetes, modificarlo antes de grabarlo por algo como [fotos.php?item=mis
> fotos|mis fotos].

En Perl:
    $text = "aqui [fotos], fui a la [cabana]";
    $text =~ s!\[(.*?)\]!<a href="algo?pagina=\1">\1</a>!g;
    print $text;

La expresion regular es \[(.*?)\].  Los \[ \] calzan los corchetes, .*?
significa "cualquier cosa entre los corchetes, pero calzando lo menos
posible" y los parentesis permiten guardar en \1 el texto calzado para
su uso posterior.

HTH, saludos.
-- 
Roberto Bonvallet


Más información sobre la lista de distribución Linux