2010-08-16 3 views
5

Désolé pour cette question fondamentale, mais j'ai cherché sur toutes les informations sur preg_replace je peux trouver et je ne peux toujours pas comprendre cela .. J'ai une grande chaîne, comme celui-ci, par exemple:Preg_replace, en remplaçant juste la partie de pattern dans()?

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

Et quand je fais cela, il remplace le modèle, et pas seulement la partie en() que je pense à faire .. Je me demande comment je peux remplacer la pièce (en) .. merci

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

attendu chaîne remplacée:

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

Pouvez-vous également publier la chaîne remplacée attendue? – kennytm

Répondre

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

Merci, maintenant je comprends, j'ai vu la mention de $ 1 et $ 3 dans un exemple sur la page php preg_replace mais ils ont utilisé une syntaxe étrange avec {donc je pense que cela m'a renversé – Rick

+0

vous pouvez également utiliser \ 1 et \ 3 au lieu de 1 $ et 3 $ – stillstanding

Questions connexes