我需要一个正则表达式从字符串中删除以下内容page=55&
或page=77&
例如,字符串可以是:
var=104&anothervar=10&page=14&name=stack
结果应该是:
var=104&anothervar=10&name=stack
用于 preg_replace 的适当表达式是什么?
您可以使用parse_str然后重新组合它们以消除您不想要的参数。不需要正则表达式(再次)。
$result = preg_replace('/\bpage=\d+&/', '', $subject);
除非您想更改为,否则边界一词 是必需的。\b
"var=123&subpage=456&name=stack"
"var=123&subname=stack"
您应该使用preg_replace函数。
例子:
$str = 'var=104&anothervar=10&page=14&name=stack';
$str = preg_replace('/&?page=\d+&?/', '', $str);
echo $str;
&page=\d+?
[&]?
表示&
字符出现 0 或 1 次。(如果它是第一个参数&符号,一开始没有&符号)\d+?
表示后面至少有 1 个或多个数字=
输出:
var=104&anothervar=104&name=stack