我需要删除此字符串
page=x
x
是一个动态字符串(应该是一个数字但可以是任何东西)
来自另一个字符串,例如
url/?filter=value&page=2&filter2=value
但它也可以是:
url/?page=2
所以,这些是作为例子的案例
1. url/?page=2&filter=value
2. url/?page=2
3. url/?filter=value&page=2
4. url/?filter=value&page=2&filter2=value
他们应该回来:
1. url/?filter=value
2. url/
3. url/?filter=value
4. url/?filter=value&filter2=value
我怎样才能使用正则表达式?
答案 0 :(得分:1)
你说过:
[?&]page=[^&]+
适合你。这会查找?
或&
然后page=
以及之后的任何内容,直到&
。更长的答案是:
echo rtrim(preg_replace('/([?&])page=[^&]*&?/', '$1', $string), '&?')
将正确处理介绍和结束参数的情况。