0

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

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

$trackingId="M6023409823490234";
$text = preg_replace("/\$\$ausposttrackingid\$\$/",$trackingId,$text);

但是......它根本不替换文本,只留下 $$ausposttrackingid$$ 。我以为我已经正确地避开了 $ 符号,但没有放弃。

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

多谢你们。皮特

4

1 回答 1

2

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

$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
?>

附录

您将希望对某些转义字符使用双引号,例如"\n"会给您一个新行但'\n'不会,而是只会 print \n

于 2012-06-17T05:38:01.410 回答