我有一个HTML文本文件,其中包含以下用于替换的标记集: $$ ausposttrackingid $$
我正在尝试使用以下正则表达式替换该文本:
$trackingId="M6023409823490234";
$text = preg_replace("/\$\$ausposttrackingid\$\$/",$trackingId,$text);
但是......它根本不会替换文本,只留下$$ ausposttrackingid $$。 我以为我已经正确地逃过了$符号,但没有给予。
有人能告诉我如何在preg_replace中指定正则表达式来正确选取$$ ausposttrackingid $$吗?或者,或者,我应该使用另一个标记标记而不是$在regex中给出它的含义吗?
谢谢你们。 皮特
答案 0 :(得分: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
?>
附录
您可能希望对某些scape字符使用双引号,例如"\n"
会为您提供一个新行,但'\n'
不会,而只会打印\n
。