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