Foros del Web » Programando para Internet » PHP »

Expresión regular para reemplazar variable en texto

Estas en el tema de Expresión regular para reemplazar variable en texto en el foro de PHP en Foros del Web. Hola amigos, me explico mejor porque el título es algo confuso. Tengo un texto y dentro de él quiero sobresaltar las variables que sean de ...
  #1 (permalink)  
Antiguo 17/04/2010, 15:48
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Pregunta Expresión regular para reemplazar variable en texto

Hola amigos, me explico mejor porque el título es algo confuso.

Tengo un texto y dentro de él quiero sobresaltar las variables que sean de php. Si el texto es el siguiente:

Cita:
Variables y bucles:
for($i=0; $i<count($array); $i++) {
echo $i;
}
Que se transforme en esto:

Cita:
Variables y bucles:
for($i=0; $i<count($array); $i++) {
echo $i;
}
Sé que tengo que utilizar ereg_replace(); pero no doy con la expresión regular.

He intentado lo siguiente:

Código PHP:
Ver original
  1. $resultado=ereg_replace(/\$[a-z|A-Z]/, "<font color=blue>/{1}/</font>", $cadena);

Pero obviamente no me sale. {1} es para repeticiones, pero yo lo utilicé a ver si me aparecía como coincidencia de la búsqueda.

¿Cómo puedo hacer para reemplazar una palabra que empiece por $ con lo mismo pero de color azul?

Gracias y un saludo.
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #2 (permalink)  
Antiguo 17/04/2010, 15:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresión regular para reemplazar variable en texto

es simple...
Cita:
/\$\w+/
reemplazas por...
Cita:
<strong>\\0</strong>
y te recomiendo usar preg_replace()

lee lo siguiente:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/04/2010, 16:06
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Expresión regular para reemplazar variable en texto

No lo consigo de ninguna manera. No reemplaza, o no encuentra. No lo sé realmente. Con preg_replace() reemplazaría todas las coincidencias de cualquier punto del texto?
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #4 (permalink)  
Antiguo 17/04/2010, 16:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresión regular para reemplazar variable en texto

sería bueno que muestres como lo haces... ya que así como dices es difícil de adivinar...

vamos, que preg_replace() es similar a lo que usabas antes... solo que es o que se usa ahora, pues EREG está obsoleto... (:

y también si... una buena expresión siempre trae los resultados correctos!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 17/04/2010, 17:05
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Expresión regular para reemplazar variable en texto

Código PHP:
Ver original
  1. $mensaje="un monton de texto $variable un monton de texto $variable";
  2. $mensaje=preg_replace("/\$\w+/", "<font color='blue'>\\0</font>", $mensaje);
Gracias pateketrueke
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.
  #6 (permalink)  
Antiguo 17/04/2010, 18:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Expresión regular para reemplazar variable en texto

jeje... el problema que tienes es que usas comillas dobles para tus strings... y por ende, dichas comillas evalúan el contenido de $variable en dichas strings...

eso mismo pasa con la primer expresión de preg_replace(), así que mientras sigas usando dichas comillas dobles... o bien, no escapes correctamente el símbolo de dollar para evitar su evaluación no podrás resolverlo... ;)

te recomiendo leer lo siguiente:
http://www.forosdelweb.com/f18/como-...1/#post2414268
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 18/04/2010, 06:50
Avatar de CHuLoSoY  
Fecha de Ingreso: febrero-2002
Ubicación: Ribeira (Galicia)
Mensajes: 1.900
Antigüedad: 22 años, 2 meses
Puntos: 29
Respuesta: Expresión regular para reemplazar variable en texto

Después de darle muchas vueltas lo he solucionado. Tenías razón pateketrueke, aunque a medias porque tenía escapado el $. Lo he solucionado reemplazando $ por su notación html:

Código PHP:
Ver original
  1. $mensaje=str_replace("$","&amp;#036;",$mensaje);
  2. $mensaje=preg_replace("/&amp;#036;\w+/", "<font color='blue'>\\0</font>", $mensaje);
Mil gracias a migo!
__________________
ESQUIO Dominios y Hosting
Las mejores características con los mejores precios.

Etiquetas: reemplazar, regular, variables
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 23:27.