PHP正则表达式:匹配没有其他字符的确切单词

时间:2015-03-11 12:06:26

标签: php regex

我有一个类似于?supercategory=1&category=14&page=2的字符串,我有一个函数可以从该字符串中删除一个选定的过滤器然后返回它。

我的正则表达式为preg_replace('/(category=[0-9]+)&?/', '', $queryString)

显然上面的代码与supercategory匹配,但我希望匹配字符串中的类别,而不是超类别

我该如何做到这一点?

我想提一下,字符串中categorysupercategory的位置可以更改。

由于

1 个答案:

答案 0 :(得分:1)

使用PHP的内置parse_str(),取消设置()category元素,然后使用http_build_query(),这不是试图使用正则表达式,而是更简单重新创建查询字符串

$dataString = 'supercategory=1&category=14&page=2';
parse_str($dataString, $urlArguments);
if (isset($urlArguments['category'])) {
    unset($urlArguments['category']);
}
$dataString = http_build_query($urlArguments);
var_dump($dataString);