我有这样的代码用于用{}
替换报价$message = preg_replace('/"([^"]*)"/', "{$1}", $message);
我如何修改它,以替换像这样的文本中的屏蔽报价
"一些文本"
也需要引用本文中的引号保持不变。例如,此文本
"一些带有字符串" 123" " "
的文本
更换后应该像这样
{一些带有字符串" 123"}
的文本
这就像以相反的方式匹配引号的字符串,有一个解决方法可以匹配正确的部分:
~(\")([^\]*(?:\[^"][^\]*)*)(\")~
实时演示
php:
$re = <<< 'RE'
~(\")([^\]*(?:\[^"][^\]*)*)(\")~
RE;
echo preg_replace($re, '{$2}', $str);
我想这对您有用:
$message = preg_replace("/^\"(.*)\"$/", "{$1}", $message);