我有一个用{}
替换引号的代码$message = preg_replace('/"([^"]*)"/', "{$1}", $message);
我如何修改它以替换文本中的屏蔽引号,如
\“some text \”
此文中的引号也保持不变。 例如本文
替换后\“一些带有字符串”123“\”
的文字
应该看起来像这样
{一些带有字符串“123”的文字}
答案 0 :(得分:4)
就像以反向方式匹配带引号的字符串一样,有一种解决方法可以匹配正确的部分:
~(\\")([^\\]*(?:\\[^"][^\\]*)*)(\\")~
PHP:
$re = <<< 'RE'
~(\\")([^\\]*(?:\\[^"][^\\]*)*)(\\")~
RE;
echo preg_replace($re, '{$2}', $str);
答案 1 :(得分:-1)
我想这会对你有用:
$message = preg_replace("/^\\\"(.*)\\\"$/", "{$1}", $message);