2010-08-16 17 views
5

Perdón por esta pregunta básica, pero he estado buscando toda la información sobre preg_replace que puedo encontrar y todavía no puedo resolverlo ... Tengo una cadena grande, como esta, por ejemplo:Preg_replace, reemplazando solo la parte del patrón en()?

$string= '# tjs { fassdaf } #fsk { fssf} # fskff { casf }'; 

Y cuando hago esto, que sustituye el patrón entero, no sólo la parte de() como espero que haga .. me pregunto cómo me puedo simplemente reemplazar la parte en() .. gracias

$pattern= '/#.*tjs.*\{.*(.*)\}/imsU'; 
    $replacement= "test"; 
    $return_string = preg_replace ($string, $pattern, $replacement); 

espera cadena reemplazada:

'# tjs {test} #fsk { fssf} # fskff { casf }'; 
+0

¿Se puede publicar también la cadena que se reemplazó? – kennytm

Respuesta

3
$pattern= '/(#\s*tjs\s*\{\s*)(.*?)(\s*\})/imsU'; 
$replacement= "test"; 
$return_string = preg_replace($pattern,'$1'.$replacement.'$3',$string); 
+1

Gracias, ahora entiendo, vi la mención de $ 1 y $ 3 en un ejemplo en la página php preg_replace pero usaron una sintaxis extraña con {así que creo que me tiró de – Rick

+0

también puede usar \ 1 y \ 3 en lugar de $ 1 y $ 3 – stillstanding

Cuestiones relacionadas