对不起这个基本问题,但我一直在查看有关preg_replace的所有信息,我可以找到,但我仍然无法解决这个问题。我有一个大字符串,例如:
$string= '# tjs { fassdaf } #fsk { fssf} # fskff { casf }';
当我这样做时,它取代了整个模式,而不是像我期望的那样替换()中的部分。我想知道如何在()中替换部分..谢谢
$pattern= '/#.*tjs.*\{.*(.*)\}/imsU';
$replacement= "test";
$return_string = preg_replace ($string, $pattern, $replacement );
预期更换字符串:
'# tjs {test} #fsk { fssf} # fskff { casf }';
答案 0 :(得分:3)
$pattern= '/(#\s*tjs\s*\{\s*)(.*?)(\s*\})/imsU';
$replacement= "test";
$return_string = preg_replace($pattern,'$1'.$replacement.'$3',$string);