当该部分和替换部分都包含特殊字符时,如何替换部分字符串? e.g。
$text = "|123|12|12|";
$text = preg_replace("|0|","|12|",$text, 1);
echo($text);
所需的输出:“| 123 | 0 | 12 |”
只要特殊字符被保留,它们就无关紧要。 E.g。
$text = "#123#12#12#";
$text = preg_replace("#0#","#12#",$text, 1);
echo($text);
所需输出:“#123#0#12#”
有什么想法吗?
答案 0 :(得分:3)
如果您不需要regexp,请使用str_replace
代替preg_replace
。它更有效率,避免逃避任何事情。
如果您需要使用preg_replace
(例如,为了利用您可以指定替换次数限制的事实,与str_replace
不同),请使用preg_quote
逃避特殊角色。
答案 1 :(得分:1)
|充当正则表达式开始的标记。你真的很亲密:
$text = "|123|12|12|";
$text = preg_replace("/|0|/","|12|",$text, 1);
echo($text);
这里我使用/作为开始和结束标记。你可以使用任何角色。 /很常见。
请注意,str_replace也足够了
答案 2 :(得分:0)
你的图案需要擒纵,因为'|'是reg规则中的特殊字符。 使用'\'来转义char,然后使用'/'作为模式的分隔符。 试试这个。 :)
$text = "|123|12|12|";
$text = preg_replace("/\|12\|/","|0|",$text, 1);
echo($text);
编辑: BTY,我想你要替换第一个'| 12 |'使用'| 0 |',但是你的代码让我感到困惑。 函数preg_replace的语句如下:
混合preg_replace(混合$ pattern,混合$替换,混合$ subject [,int $ limit = -1 [,int& $ count]])
搜索主题匹配模式并用替换替换它们。
也许您已将参数放在错误的位置 详细了解preg_replace:http://cn.php.net/manual/en/function.preg-replace.php