Я хотел бы изменить <pre> с помощью <code> и </pre> с помощью </code> . 
У меня проблемы с косой чертой и регулярным выражением.
Вы можете просто использовать str_replace:
 $str = str_replace(array('<pre>', '</pre>'), array('<code>', '</code>'), $str); 
Если вы вынуждены использовать regexp:
 $str = preg_replace("~<(/)?pre>~", "<\\1code>", $str); 
Если вы хотите их заменить отдельно:
 $str = preg_replace("~<pre>~", '<code>', $str); $str = preg_replace("~</pre>~", '</code>', $str); 
Вам просто нужно избежать этой косой черты.
Вероятно, вам нужно избежать / s с \ s или использовать другой разделитель для выражения.
  Вместо этого, как насчет использования str_replace ?  <pre> и </pre> будут легко соответствовать, поскольку они вряд ли будут содержать какие-либо имена классов или другие атрибуты. 
 $text=str_replace('<pre>','<code>',$text); $text=str_replace('</pre>','</code>',$text); 
Я нашел очень простое решение для замены нескольких слов в строке:
 <?php $str="<pre>Hello world!</pre>"; $pattern=array(); $pattern[0]="/<pre>/"; $pattern[1]="/<\/pre>/"; $replacement=array(); $replacement[0]="<code>"; $replacement[1]="</code>"; echo preg_replace($pattern,$replacement,$str);?> 
вывод :
  <code>Hello world!</code> 
С помощью этого скрипта вы можете заменить столько слов в строке, сколько хотите:
просто поместите слово (которое вы хотите заменить) в массив шаблонов, например:
  $pattern[0]="/replaceme/"; 
и поместите символы (которые будут использоваться вместо замененных символов) в заменяющем массиве, например:
  $replacement[0]="new_word"; 
Счастливое кодирование!