如果我执行以下代码:
$string = 'This is “Bob” Batman.';
echo $string . '<br>';
$string = preg_replace('/(["“”„]Bob["“„])/', '-$1-', $string);
echo $string;
然后结果是
这是“鲍勃”蝙蝠侠。
这是 - Bob - 蝙蝠侠。
为什么最后一行不是这样的:
这是 - “鲍勃” - 蝙蝠侠。
答案 0 :(得分:1)
这是格式化问题。
您可以使用正则表达式u
标记来解决您的问题:
$string = preg_replace('/(["“”„]Bob["“”„])/u', '-$1-', $string);
答案 1 :(得分:1)
您可以将此正则表达式用于unicode模式:
echo preg_replace('/["“”„]Bob["“”„]/u', '-$0-', $string);
//=> This is -“Bob”- Batman.