Expresiones regulares (Ya me duele la cabeza)

Iniciado por Erika Vega, 24 Junio 2009, 22:18 PM

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

Erika Vega

Muchos conocen este tema y algunos como yo no le agarramos la onda, El hecho es que me  han pedido un script que me esta causando dolores de cabeza, Aqui va la explicacion

tengo la siguiente cadena:

$in="soy el nombre_del_jugador  y deseo retarte a duelo";

Entonces en nombre_del_jugador va el nick del usuario que esta logeado en el servidor y hasta ahi todo bien, mi problema viene en que debo reemplazar ese nombre_de_jugador por

Código (php) [Seleccionar]
[url=urldeljugador]nombre_del_jugador[/url]

lo he intentado por todos los medios y nada que me funcione, lo que tengo es:

Código (php) [Seleccionar]
$string='soy el  <nombre_del_jugador>  y deseo retarte a duelo';
$buscar='<(.*)>';
$reemplazar='[url=urldeljugador]\1[/url]';

echo ereg_replace($buscar,$reemplazar,$string);


He tratado de cambiar de diferentes formas la expresion regular y nada que parsea.

Ojo: no hay error de programacion, simplemente me muestra el texto completo sin hacer el reemplazo.



Anibal784

a mi me funcionó, no se qué será que te esté pasando.

soy el [url=urldeljugador]nombre_del_jugador[/url] y deseo retarte a duelo

Eso es lo que sale al ejecutar el script
El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.

Erika Vega

Si el script funciona, disculpa pero se me olvido quitar los "< >" va solo sin eso, es decir nombre_del_jugador

Anibal784

entonces, tu sabes nombre_usuario, busca sobre str_replace en lugar de ereg.
El que llega sin que lo llamen, se va sin que lo echen.

Citar
Vos no la votaste por eso la tenes adentro.
Lo fino no es lo tuyo, y a mi me chupa un huevo, soy argentino y no peronista, y eso es lo que realmente te molesta.

HardieVon

Cita de: Erika Vega en 24 Junio 2009, 23:16 PM
Si el script funciona, disculpa pero se me olvido quitar los "< >" va solo sin eso, es decir nombre_del_jugador

Necesitas referencias adyacentes en las cuales se pueda basar tu expresión regular, te recomiendo que uses el estandar perl.

aunque no le veo mayor sentido si mejor haces.

$nombre='Piolin';

$string="soy el  $nombre   y deseo retarte a duelo";

y si estas utilizando un sistema de idiomas que lo veo mas logico para usar la expresión.

utiliza

$nombre='Piolin';

$string="i am _N  and  i need fuck your ass";
$string=str_replace("_N",$nombre,$string);

para un caso existen diferentes soluciones.

si no te cuadra lo que te comento, plantea que necesitas.

дٳŦ٭

Si no tienes patrones repetidos en el string usa explode, Saludos.


Con sangre andaluza :)