Pregunta

Estoy tratando de apoderarse de la capital de las letras de un par de palabras y se envuelven en las etiquetas span.Estoy usando preg_replace para extraer y envolver a los efectos, pero no sale nada.

preg_replace("/[A-Z]/", "<span class=\"initial\">$1</span>", $str)
¿Fue útil?

Solución

Usted necesita poner el patrón en paréntesis /([A-Z])/, como este:

preg_replace("/([A-Z])/", "<span class=\"initial\">$1</span>", $str)

Otros consejos

\0 también coincide con el coincidente completa expresión sin hacer una captura explícita el uso de paréntesis.

preg_replace("/[A-Z]/", "<span class=\"initial\">\\0</span>", $str)

Como siempre, usted puede ir a php.net/preg_replace o php.net/<whatever search="" term=""> a la búsqueda de la documentación.Quoth la documentación:

\0 o $0 se refiere el texto que coincide con el patrón completo.

A partir de la preg_replace documentación en php.net:

reemplazo puede contener referencias de el formulario o (desde PHP 4.0.4) $n, con la última forma de ser de la preferida.Cada referencia de este tipo será sustituido por el texto capturado por la n-esima entre paréntesis patrón.

Ver Flubba del ejemplo.

El uso de los paréntesis alrededor de su captura deseado.

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