如何使用php preg_replace替换HTML标签

时间:2010-07-30 23:24:59

标签: php regex

我想将<pre>更改为<code>,将</pre>更改为</code>

我遇到了斜杠/和正则表达式的问题。

3 个答案:

答案 0 :(得分:13)

你可以使用str_replace:

$str = str_replace(array('<pre>', '</pre>'), array('<code>', '</code>'), $str);

如果你觉得有必要使用正则表达式:

$str = preg_replace("~<(/)?pre>~", "<\\1code>", $str);

如果您想单独更换它们:

$str = preg_replace("~<pre>~", '<code>', $str);
$str = preg_replace("~</pre>~", '</code>', $str);

你只需要逃避斜线。

答案 1 :(得分:3)

您可能需要使用\ s转义/ s,或者为表达式使用不同的分隔符。

相反,如何使用str_replace呢? <pre></pre>很容易匹配,因为它们不太可能包含任何类名或其他属性。

$text=str_replace('<pre>','<code>',$text);
$text=str_replace('</pre>','</code>',$text);

答案 2 :(得分:1)

我找到了一个非常简单的解决方案来替换字符串中的多个单词:

<?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"; 

快乐的编码!