【发布时间】:2016-02-23 19:26:39
【问题描述】:
我要做的是:
function replace_between_something($betweenWhat,$replace_thing,$target){
return preg_replace("/".$betweenWhat."(.*?)".$betweenWhat."/",$replace_thing,$target);
}
$string="Hi, *my* name is 'Soul' and she is 'Maggie'. ";
$replace=replace_between_something("\*","your",$string);
$replace=replace_between_something("'","noname",$replace);
echo $replace;
预期的输出是:
Hi, *your* name is 'noname' and she is 'noname'.
但是,真正的输出(不是预期的):
Hi, your name is noname and she is noname.
符号怎么保存??
谁能帮帮我???
抱歉,我只是编辑我的问题以显示我想要做的实际事情。
【问题讨论】:
-
只需将引号放入您的替换中,例如
$replace=preg_replace("/'(.*?)'/","'noname'",$string);。 -
谢谢,但我不想那样……
-
我们可以告诉正则表达式只选择内部引号吗? (只选择内容而不是“内容”)
-
@SyamsoulAzrien
return preg_replace("/".$betweenWhat."(.*?)".$betweenWhat."/",$betweenWhat . $replace_thing . $betweenWhat,$target);+ 使用preg_quote()转义$betweenWhat
标签: php preg-replace symbols apostrophe