首页 > 解决方案 > 如何在php中替换({{}})特殊字符的内容

问题描述

我有一个段落,其中包含一些内容以及 {{0001ABC}} 内的值我想用一些内容替换 {{0001ABC}},例如找到的代码。

preg_replace('/{{"([^\\"]+)"}}/', "Code found", "Hello {{0001ABC}}");

结果应该是这样的

  Hello Code found

标签: php

解决方案


您的正则表达式模式不正确。这是一个应该可以工作的版本:

\{\{[^{}]+\}\}

这将匹配两个左大括号,后跟一个或多个不是大括号的字符,然后是两个右大括号。请记住,{and}是正则表达式元字符,具有特殊含义,因此如果我们希望它们表示文字字符,则需要转义。

您更新的脚本:

$input = "Hello {{0001ABC}}";
$output = preg_replace("/\{\{[^{}]+\}\}/", "Code found", "Hello {{0001ABC}}");
echo $output;

这打印:

Hello Code found

推荐阅读