Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Shell Root en 29 Mayo 2010, 16:42 PM

Título: Verificar y recolectar valor de expresion regular
Publicado por: Shell Root en 29 Mayo 2010, 16:42 PM
Bueno, lo que quiero hacer es algo así. Tengo como cadena la siguiente:
Código (bash) [Seleccionar]
:sh:Todavía tenemos posibilidades de clasificarnos, es :sh:difícil,
el panorama :sh:está complicado, pero en eso nos basamos,
:sh:todavía estamos en la Copa :sh:América y queremos quedarnos


Y tengo la siguiente expresión regular. (Un poco loca, pero funciona)
Código (RegExp) [Seleccionar]
/:sh:\w*/

Lo que hace es validar así:
Código (bash) [Seleccionar]
:sh:Todav
:sh:dif
:sh:est
:sh:todav
:sh:Am


Lo hace correctamente, pero como hago para recolectar la información que está después de la expresión regular?, es decir, hago esto para intentar hacer lo que quiero, pero solo me toma sh, quisiera recolectar todo lo que cumple la expresión regular. Como los anteriores.

Código:
Código (php) [Seleccionar]
$txt = ":sh:Todavía tenemos posibilidades de clasificarnos, es :sh:difícil,
el panorama :sh:está complicado, pero en eso nos basamos,
:sh:todavía estamos en la Copa :sh:América y queremos quedarnos";
preg_match_all("/:sh:\w*/", $txt, $captura, PREG_SET_ORDER);
foreach ($captura as $salida){
echo $salida[1];
echo "\n";
}

Resultado:
Código (bash) [Seleccionar]
shellroot@alex-laptop:~/Escritorio$ php PoC.php
sh
sh
sh
sh
sh



Edit: Estaba mirando el código de yoyahack y no se porque puso $salida[1], era $salida[0]. :S Perdón por el POST!
Código (bash) [Seleccionar]
shellroot@alex-laptop:~/Escritorio$ php PoC.php
:sh:Todav
:sh:dif
:sh:est
:sh:todav
:sh:Am
Título: Re: Verificar y recolectar valor de expresion regular
Publicado por: ~ Yoya ~ en 29 Mayo 2010, 18:15 PM
Si usas
Título: Re: Verificar y recolectar valor de expresion regular
Publicado por: Shell Root en 29 Mayo 2010, 18:50 PM
Thanks!, pero como había dicho, hice la ExpReg, de acuerdo a lo que necesitaba, y necesitaba que se mostrará el contenido anterior a la tilde y que al inicio tuviese :sh: :P