如何将'abc'替换为'a \ 0 \ 0c'

时间:2010-02-02 03:22:27

标签: php regex

如何将'abc'替换为'a \ 0 \ 0c'

以下代码失败并输出'ac'

<?php
 $input = 'abc';
 $pattern = '/b/i';
 $replace = "\\0\\0";
 $output = preg_replace($pattern, $replace, $input);
 echo $output;
?>

3 个答案:

答案 0 :(得分:5)

如有疑问,请添加更多反斜杠:

$replace = '\\\\0\\\\0';

第一级转义是PHP字符串解析器。单引号和双引号都将\\解释为\。下一级是正则表达式解析器。

所以PHP看到了:

\\\\0\\\\0

它解释为:

\\0\\0

正则表达式解析器将其解释为文字字符串:

\0\0

答案 1 :(得分:0)

你试过吗

$replace = '\\0\\0';

答案 2 :(得分:0)

这里是一个“整洁者”另一种没有那些额外斜线的方式

$string="abc";
$s = split("[bB]",$string);
print_r( implode('\0\0' , $s) );