2008-08-05 15 views

Respuesta

50

Es necesario poner el patrón paréntesis /([A-Z])/, así:

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

@Gumbo: Responder sus propias preguntas es perfectamente correcto, incluso alentado, siempre y cuando la pregunta no sea un duplicado de otra en el sitio. –

8

Desde el preg_replace documentation en php.net:

de reemplazo puede contener referencias de la form \ n o (desde PHP 4.0.4) $ n, siendo este último el pr eferred uno. Cada referencia será reemplazada por el texto capturado por el n-ésimo patrón entre paréntesis.

Vea el ejemplo de Flubba.

25

\0 también coincidirá con toda la expresión coincidente sin realizar una captura explícita utilizando paréntesis.

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

Como siempre, se puede ir a php.net/preg_replace o php.net/ < cualquier término > de búsqueda para buscar rápidamente la documentación. En cuanto a la documentación:

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

6

Use paréntesis alrededor de la captura que desee.

Cuestiones relacionadas