Estoy creando una aplicación y estoy haciendo el comando para emoticonos.

Cuando escribe /happy, muestra el icono. Eso ya lo hice.

Pero lo que quiero es que si el usuario escribe /happy happy se mostrará la palabra mi emoticón + feliz .

¿Cómo hacer esto usando regex? Otro ejemplo:

Entradas del usuario: /happy /happy /happy happy

Debe haber 3 emoticonos y 1 palabra.

-1
DumDumDummy 28 ene. 2016 a las 08:32

2 respuestas

La mejor respuesta

Quiero decir que ni siquiera necesitas una expresión regular para esto, pero si quisieras usar una, es tan simple como:

$string = preg_replace('@/happy\b@i', ':)', $string);

El \b es un "límite de palabras" que evitaría que "/happyer" se convierta en :)er.

0
Will 28 ene. 2016 a las 05:40

Debe incluir / en su expresión regular, para que coincida con las palabras que lo tienen, así:

$output = preg_replace('~/happy~', 'EMOTICON', $input);

Por ejemplo:

$input = "I'm so /happy now!";
$output = preg_replace('~/happy~', "☺", $input);
echo $output;

// output: I'm so ☺ now!

Salida renderizada: ¡Estoy tan ☺ ahora!

2
elixenide 28 ene. 2016 a las 05:42