PHP-在引号中替换引号-正则表达式

PHP-在引号中替换引号-正则表达式,php,regex,Php,Regex,我有以下案文: $var = 'bundle:a AND id:9 _query_:" bundle:b AND _query_:"bundle:c AND _query_:"bundle:d" " "'; 并希望获得以下输出: bundle:a AND id:9 _query_:" bundle:b AND _query_:\"bundle:c AND _query_:\"bundle:d\" \"" 编辑1: 我试过: preg_replace('/(?<!_:|_: )"(?=[

我有以下案文:

$var = 'bundle:a AND id:9 _query_:" bundle:b AND _query_:"bundle:c AND _query_:"bundle:d" " "';
并希望获得以下输出:

bundle:a AND id:9 _query_:" bundle:b AND _query_:\"bundle:c AND _query_:\"bundle:d\" \""
编辑1:

我试过:

preg_replace('/(?<!_:|_: )"(?=[^"]*?"(( [^:])|([,}])))/', '\\"', $var )
preg_replace('/(?不带正则表达式):

str_replace("\"", "\\\"", $var)
使用正则表达式:

preg_replace("/\"/", "\\\"", $var)
诸如此类:

$var = 'bundle:a AND id:9 _query_:" bundle:b AND _query_:"bundle:c AND _query_:"bundle:d" " "';

$start = strpos($var, '"');
$end = strrpos($var, '"');

$result = substr($var, 0, $start + 1) . 
          str_replace('"', '\\"', substr($var, $start + 1, $end - $start - 1)) . 
          substr($var, $end);

警告!我不建议在生产中使用此代码,只是想展示一下想法。

您尝试了什么?我尝试了:preg_replace('/(?为什么在这里的双引号前没有反斜杠
bundle:a和id:9查询:“
最后?是用于查询,我需要这些双引号来运行子查询此更改字符串中的所有双引号,我尝试更改双引号中的双引号。输出:条件和查询:“条件和查询:\”查询:\“条件:a\”和条件