Preg_replace期间的正则表达式

时间:2012-11-26 21:47:40

标签: php preg-replace str-replace

我一直在寻找一段时间,而且我花了很多时间进行反复试验,但仍然无法做到正确:/

我要做的是采取像网址一样的字符串:

www.something.com/something.html?user=1&page=1

并删除字符串中的"&page=1"。此字符串可能在&variable后有另一个"&page=*",因此我希望它只删除"&page=*"

我一直在尝试的是: $url = preg_replace("/&page=\.{*}&?/","",$url);

所以换句话说:"&page=" + anynumber + till end of number or next "&"

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

preg_replace('/&page=[^&#]*/', '', $url)

这匹配&page=后跟0或更多(即*位)不是&#的字符。 [...]代表一组字符; [^...]反转集合。

换句话说,它会匹配&page=之后的所有内容,直到下一个&#(或字符串结尾)。