我正在使用这个preg_replace
echo preg_replace('/.*/','r','string');
我原以为它应该输出r
但输出是
RR
有人可以解释为什么它会回复两个r吗?
答案 0 :(得分:2)
因为preg_replace使用全局标志,.*
首先匹配整个字符串,然后匹配末尾的空字符串,因此你看到r的两倍。
如果您只想替换字符串,则必须更明确地使用该模式。例如,您可以使用以下^.*
。
其他选项是为preg_replace添加限制以仅替换第一个匹配:
preg_replace('/.*/','r','string',1)