1

我真的想弄清楚如何为这个字符串写一个 preg_replace ......

/url/?12345678910&stackoverflow=rocks

...我想成为...

/url/?_uniqueId_&stackoverflow=rocks

该字符串包含更多的 ?s 和 &s,但是这是字符串中第一次出现的字符。

我尝试了以下方法,但它甚至没有给我回应:

preg_replace("/\/url\/\?[^)]+\&/","_uniqueId_",$link);

任何帮助将不胜感激。

4

1 回答 1

1

您是否将结果分配给preg_replace变量?

$link = '/url/?12345678910&stackoverflow=rocks';
$res = preg_replace("/\/url\/\?[^)]+\&/","/url/?_uniqueId_&",$link);
echo $res;

另外,我从您错过的替换字符串中添加了其他部分。否则,正则表达式可以更改为:

$res = preg_replace("~/url/\?[^&]+&~","/url/?_uniqueId_&",$link);

这应该更快一些,并且我使用了不同的分隔符来避免过度转义。也不&需要逃避。

或使用环视:

$res = preg_replace("~(?<=/url/\?)[^&]+(?=&)~","_uniqueId_",$link);
于 2013-10-09T07:07:56.697 回答