preg_replace - specifying pattern
我有一个 HTML 文本文件,其中包含以下用于替换的标记集:
$$ausposttrackingid$$
我正在尝试使用以下正则表达式替换该文本:
1 2 | $trackingId="M6023409823490234"; $text = preg_replace("/\\$\\$ausposttrackingid\\$\\$/",$trackingId,$text); |
但是...它根本不会替换文本,只留下 $$ausposttrackingid$$。
我以为我已经正确地避开了 $ 符号,但没有放弃。
谁能告诉我应该如何在 preg_replace 中指定正则表达式以正确获取 $$ausposttrackingid$$?或者,考虑到它在正则表达式中的含义,我应该使用另一个标签标记而不是 $ 吗?
谢谢大家。
皮特
不要使用双引号,因为 PHP 会在你的字符串中查找变量名并替换它们的值。因此,字符串中的
1 |
其实习惯用单引号,除非需要。
一个工作示例:
1 2 3 4 5 6 7 | <?php $text = 'Something $$ausposttrackingid$$ something else'; $trackingId = 'M6023409823490234'; $text = preg_replace('/\\$\\$ausposttrackingid\\$\\$/', $trackingId, $text); print_r($text); //The output is: Something M6023409823490234 something else ?> |
附录
你会想要对一些转义字符使用双引号,例如
"
'