如何在 PHP 中使用 preg_replace 将表达式替换为元字符?

我尝试了不同的方式,用 PHP 中的元字符替换另一个文本的元字符的摘录。我知道,这看起来很简单,但我尝试了很多次但没有得到它。

图案:$Sel = 'anyvalues';

替代品:$Sel = 'one other';

主题:<?php $Sel = 'anyvalues';

我深入尝试以不同的顺序使用 addlashes() 和 preg_quote() 方法,但它不起作用。我需要它作为代表而不是寻找任何解决方法。

这些值中的每一个都位于不同的文件中,即模式位于一个文件中,替换位于另一个文件中,主题也位于另一个文件中。


尚方宝剑之说
浏览 74回答 1
1回答

慕的地6264312

您是否将您的模式包装在分隔符中?$pattern = '$Sel = "anyvalues_containing_delimiter_/";';$replacement = '$Sel = "one other";';$subject = '<?php $Sel = "anyvalues_containing_delimiter_/";';echo preg_replace(sprintf('/%s/', preg_quote($pattern, '/')), $replacement, $subject);模式的内容是唯一需要转义的内容,因此preg_quote调用。第二个参数是包装模式的分隔符(sprintf这里是做什么的),因此模式内容中的任何出现也可以在应用之前进行转义。编辑:我已经修改了片段以涵盖文件内容中分隔符的出现。第二次编辑:将代码从链接片段移到答案本身。
打开App,查看更多内容
随时随地看视频慕课网APP