preg_replace正则表达式更改

时间:2012-02-28 21:46:20

标签: php regex preg-replace

我正在寻找一些正在使用的正则表达式,以满足HTML注释标记而不是CSS。

我已经构建了一个preg替换函数,可以在样式表中的注释之间进行编辑,如下所示:

$find = array();
    $find[0] = "/(\/\*bgColor\*\/).*?(\/\*\/bgColor\*\/)/i";
    $find[1] = "/(\/\*titleColor\*\/).*?(\/\*\/titleColor\*\/)/i";
$replace = array();
    $replace[0] = "\\1 background-color: $bgColor; \\2";
    $replace[1] = "\\1 color: $titleColor; \\2";
$result = preg_replace($find, $replace, $file);

其工作方式如下所示:

/*titleColor*/ color: #000; /*/titleColor*/

两个CSS标签之间的任何内容都将被替换。

我希望复制这个想法,但是像这样的html:

<!--titleColor--> content_to_replace  <!--/titleColor-->

我需要在preg_replace中更改什么才能使其与html注释标记一起正常工作?

1 个答案:

答案 0 :(得分:1)

$find = array();
    $find[0] = '/(<!--titleColor-->)(.*?)(<!--\/titleColor-->)/i';
$replace = array();
    $replace[0] = '$1' . 'replacement' . '$3';
// I prefer enclosing the current inner value with patantheses
// in case you might wanna change or use it inside the $replace value.