PHP -替换引号中的引号- regex


PHP - Replace quotes within quotes - 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:

i tried with:

preg_replace('/(?<!_:|_: )"(?=[^"]*?"(( [^:])|([,}])))/', '''"', $var )

thanks =)

像这样:

$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);

警告!我不建议在生产中使用这段代码,只是试图展示这个想法。

不带正则表达式:

str_replace("'"", "'''"", $var)
与正则表达式:

preg_replace("/'"/", "'''"", $var)