php中正则表达式中必须转义的字符有哪些?如:
preg_replace("#.........#isU","",$file)在##内部必须进行转义的字符有哪些?

解决方案 »

  1.   


    <?php
    $lte7_str="\n";
    $lte7_str.= "HELLO";$file=file_get_contents("tem/dede_tem/index.htm");
    $file_r= preg_replace("#(<!--\[if lte IE 7\]>)(.*)(<!\[endif\]-->)#isU","$1$lte7_str$3",$file);
    echo $file_r;
    ?>
    正则表达式的特殊字符包括:. \ + * ? [ ^ ] $ ( ) { } = ! < > | :。
    为什么上面的代码中 的!和< 和 > 不用转义都可以匹配
      

  2.   

    <和>并不是正则表达式的元字符
      

  3.   

    preg_quote -- 转义正则表达式字符
    说明
    string preg_quote ( string str [, string delimiter] )
    preg_quote() 以 str 为参数并给其中每个属于正则表达式语法的字符前面加上一个反斜线。如果你需要以动态生成的字符串作为模式去匹配则可以用此函数转义其中可能包含的特殊字符。 如果提供了可选参数 delimiter,该字符也将被转义。可以用来转义 PCRE 函数所需要的定界符,最常用的定界符是斜线 /。 正则表达式的特殊字符包括:. \ + * ? [ ^ ] $ ( ) { } = ! < > | :。