трабла с рег выражением

Kirill

Новичок
трабла с рег выражением

Дано:
$_SERVER['QUERY_STRING']
Нужно удалить параметр вместе со значением и следующим за ним & (если есть)
$name - название этого параметра
Делаю так:
preg_replace("/".$name.".*\&/i", "", $prefix);

Удаляет только если после переменной есть &. Пробую так (т.к. либо конец строки либо &):
preg_replace("/".$name.".*(\&|$)/i", "", $prefix); - удаляет всю стоку целиком
Как быть? Длину строки с параметром я не знаю.
 

denver

?>Скриптер
1. По поводу "&": Метасимвол ? матчит ноль или одно соответствие. Посмотри примеры с ним.
2. По поводу удаляет слишком много: почитай про жадность (greedy), сделай звездочку "нежадной".
 

denver

?>Скриптер
Решай проблему с жадностью, а потом уже остальные - убери всё лишнее, заставь .* идти до первого &
Затем уже сделай & необязательным: {0,1} или просто ? после него.
 
Сверху