PHP preg_replace替换任何文本

时间:2012-02-16 17:04:15

标签: php regex preg-replace replace

如何用替换中的任何文字和符号替换文字?因为当我使用反斜杠时,它被严重替换。

$text = 'hello replacement world';

$text = preg_replace('#replacement#ui', '28\01\12', $text);

结果

hello 28 world

在使用模式

之前进行替换的解决方案
$pattern = '28\01\12';
$pattern = str_replace('\\', '\\\\\\\\', $pattern);

这只是示例,在实际工作中需要使用更复杂的模式,替换将包含任何文本

2 个答案:

答案 0 :(得分:3)

$text = preg_replace('#replacement#ui', '28\\01\\12', $text);

请参阅反斜杠上的说明:http://php.net/manual/en/language.types.string.php

如果您只是要搜索要替换的简单字符串,则应考虑使用str_replace()。它的cpu成本更低。见这里:http://php.net/manual/en/function.str-replace.php

更新:有关转义序列的更多信息:http://www.php.net/manual/en/regexp.reference.escape.php

答案 1 :(得分:1)

$text = 'hello replacement world';

$text = preg_replace('#replacement#ui', '28\\01\\12', $text);

这是因为您必须转义字符串中的反斜杠。