使用preg_replace()
时,是否可以只替换“()”中的匹配组而不是替换模式参数中的所有内容?
例如,请考虑以下网址:
$url = 'http://images.example.com/foo/1234/bar/foobar';
要用另一个替换号码,我尝试这样做:
$newUrl = preg_replace('#\/foo\/([0-9]+)\/#', 4321, $url);
但结果如下:
http://images.example.com4321bar/foobar
因此preg_replace()
似乎取代了pattern参数中的所有内容,而不仅仅是匹配组。
有没有办法只替换匹配的组而不是替换pattern参数中的所有内容?