如何用{}替换屏蔽报价



我有这样的代码用于用{}

替换报价
$message = preg_replace('/"([^"]*)"/', "{$1}", $message);

我如何修改它,以替换像这样的文本中的屏蔽报价

"一些文本"

也需要引用本文中的引号保持不变。例如,此文本

"一些带有字符串" 123" " "

的文本

更换后应该像这样

{一些带有字符串" 123"}

的文本

这就像以相反的方式匹配引号的字符串,有一个解决方法可以匹配正确的部分:

~(\")([^\]*(?:\[^"][^\]*)*)(\")~

实时演示

php:

$re = <<< 'RE'
~(\")([^\]*(?:\[^"][^\]*)*)(\")~
RE;
echo preg_replace($re, '{$2}', $str);

我想这对您有用:

$message = preg_replace("/^\"(.*)\"$/", "{$1}", $message);

最新更新