Foros del Web » Programando para Internet » PHP »

Expresiones regulares... HELPPPPP

Estas en el tema de Expresiones regulares... HELPPPPP en el foro de PHP en Foros del Web. Por mas que intento probar o ver de donde puedo sacar un ejemplo no puedo. A ver si alguien puede ayudarme. Supongamos que tengo $lista='hola;gato;pez;casa'; ...
  #1 (permalink)  
Antiguo 12/05/2005, 08:21
 
Fecha de Ingreso: junio-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 13 años, 6 meses
Puntos: 1
Expresiones regulares... HELPPPPP

Por mas que intento probar o ver de donde puedo sacar un ejemplo no puedo. A ver si alguien puede ayudarme.
Supongamos que tengo
$lista='hola;gato;pez;casa';
Y...
$texto='Hola, te dije que mi gato se comio a mi pez en casa?';
Lo que yo queria hacer era confrontar estas dos cadenas (de la primera se puede hacer un array) para que:
1) Me diga si alguna de las palabras de $lista esta en $texto, devolviendo un true por ejemplo;
2) Para que se reemplace en $texto cada una de las palabras de $lista por algo, por ejemplo: hola --> <b>hola</b>

Si alguien la tiene clara con expresiones y tiene un ratito para ayudarme se lo agradezco!
  #2 (permalink)  
Antiguo 12/05/2005, 08:50
 
Fecha de Ingreso: agosto-2004
Mensajes: 95
Antigüedad: 13 años, 3 meses
Puntos: 2
Código PHP:
<?
$lista
=array(gato,pez,casa);
$texto='Hola, te dije que mi gato se comio a mi pez en casa?';
foreach(
$lista as $key => $value){$texto ereg_replace($value,"<b>$value</b>",$texto);}
echo 
$texto;
?>
Hola, te dije que mi gato se comio a mi pez en casa?

Aunque debe haber otra forma mejor ...para no tener que buscar a cada rato en la cadena ...


Código PHP:
<?
$lista
=array(gAtO,pEz,CaSa);
$texto='Hola, te dije que mi gato se comio a mi pez en casa?';
foreach(
$lista as $key => $value){
$texto eregi_replace($value,"<b>\\0</b>",$texto);
}
echo 
$texto;
?>
Devuelve lo mismo...pero es independiente de las mayúsculas o minúsculas

Hola, te dije que mi gato se comio a mi pez en casa?
__________________
Marco de Arica (Chile)

Última edición por marcomartinez; 12/05/2005 a las 09:38
  #3 (permalink)  
Antiguo 12/05/2005, 10:56
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
Str_replace es mucho mas potente de lo que se cree. Creo que seria mas sencillo usar esta funcion enviando arrays como argumentos.
Aca se explica:
http://ar.php.net/str_replace

Algo basico seria
Código PHP:
$lista= array("hola","gato","pez","casa");
$lista_reemplaza_por= array("<b>hola</b>","gato","pez","casa");
$texto='Hola, te dije que mi gato se comio a mi pez en casa?';

$nuevostr_replace($lista$lista$texto); 

Que es bastante parecido a el ejemplo del manual.
saludos!
  #4 (permalink)  
Antiguo 12/05/2005, 22:12
 
Fecha de Ingreso: junio-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 13 años, 6 meses
Puntos: 1
Voy a probar los dos ejemplos, muchas gracias!
Y algo para que solo confrontando las cadenas o un array y una cadena solo diga si alguna de las palabras del array esta en la cadena?
  #5 (permalink)  
Antiguo 13/05/2005, 10:54
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
No entendi muy bien tu ultima duda.....
Capaz alguna de estas te ayude: in_array(), substr_count(), stripos(), array_search()

Saludos
  #6 (permalink)  
Antiguo 13/05/2005, 10:57
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 15 años, 4 meses
Puntos: 8
Ahora que miro bien tu pregunta, la original (del principio)... Veo que quieres hacer un "remarcado" de ciertas palabras.

Casualmente se trato algo parecido en
http://www.forosdelweb.com/f18/por-favor-ayuda-con-otra-acentos-pero-esta-vez-reves-p-296413/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:12.