Php preg_replace-指定模式

Php preg_replace-指定模式,php,escaping,preg-replace,Php,Escaping,Preg Replace,我有一个HTML文本文件,其中包含以下替换标记集: $$ausposttrackingid$$ 我正在尝试使用以下正则表达式替换该文本: $trackingId="M6023409823490234"; $text = preg_replace("/\$\$ausposttrackingid\$\$/",$trackingId,$text); 但是…它根本不替换文本,只保留$$ausposttrackingid$$。 我原以为我已经逃过了美元标志,但没有放弃 谁能告诉我如何在preg_repl

我有一个HTML文本文件,其中包含以下替换标记集: $$ausposttrackingid$$

我正在尝试使用以下正则表达式替换该文本:

$trackingId="M6023409823490234";
$text = preg_replace("/\$\$ausposttrackingid\$\$/",$trackingId,$text);
但是…它根本不替换文本,只保留$$ausposttrackingid$$。 我原以为我已经逃过了美元标志,但没有放弃

谁能告诉我如何在preg_replace中指定正则表达式以正确拾取$$ausposttrackingid$$?或者,考虑到$regexes中的含义,我是否应该使用另一个标记而不是$

谢谢各位。
Pete

不要使用双引号,因为PHP将在字符串中查找变量名并替换它们的值。因此,字符串中的
$auspesttrackingid
将替换为变量
$auspesttrackingid
的值。如果这不是您的意图,请使用单引号:

$text = preg_replace('/\$\$ausposttrackingid\$\$/',$trackingId,$text);
事实上,除非需要,否则要习惯使用单引号

一个有效的例子:

<?php
    $text = 'Something $$ausposttrackingid$$ something else';
    $trackingId = 'M6023409823490234';
    $text = preg_replace('/\$\$ausposttrackingid\$\$/', $trackingId, $text);
    print_r($text);
    //The output is: Something M6023409823490234 something else
?>


附录


您可能希望对某些scape字符使用双引号,例如,
“\n”
将为您提供一个新行,但
“\n”
不会,而是只打印
\n

,谢谢您的解释(并修复了它)。皮特