Pregunta

Este ejemplo funciona bien:

echo preg_replace("/\bI\b/u", 'we', "I can"); // we can

Éste eran las letras rusas se utilizan no funciona a pesar de que yo uso "u" modificador:

echo preg_replace("/\bЯ\b/u", 'мы', 'Я могу'); // still "Я могу"

Así que la pregunta es ¿qué debo hacer para arreglar esto?
Gracias.

¿Fue útil?

Solución

En PCRE (la biblioteca utilizada por preg_replace), \b se refiere sólo a límites de palabra en un sentido ASCII, es decir, solamente [a-zA-Z0-9_] son caracteres de palabra.

Si desea hacer coincidir un carácter Я que no tiene letras, dígitos o _ inmediatamente antes o después, puede utilizar:

(?<![\p{L}0-9_])Я(?![\p{L}0-9_])

Usted todavía tiene que utilizar el modificador u.

Otros consejos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top