{{esc}}"Content"{{/esc}} ... {{esc}}"More content"{{/esc}}
给定我想输出的字符串,\"Content\" ... \"More content\"
例如,我试图转义字符串中的引号。(不过,这是一个人为的例子,所以像“只使用这个库来做”这样的答案是没有帮助的。)
这是我目前的解决方案:
return preg_replace_callback(
'/{{esc}}(.*?){{\/esc}}/',
function($m) {
return str_replace('"', '\\"', $m[1]);
},
$text
);
如您所见,我需要说$m[1]
,因为 aprint_r
显示$m
如下:
Array
(
[0] => {{esc}}"Content"{{/esc}}
[1] => "Content"
)
或者,对于第二场比赛,
Array
(
[0] => {{esc}}"More content"{{/esc}}
[1] => "More content"
)
我的问题是:为什么我的正则表达式会$m
成为一个数组?有什么方法可以让我得到$m[1]
一个变量的结果$m
?