2013-06-04 7 views
-4

мне нужно регулярное выражение, чтобы удалить следующие из строки page=55& или page=77&Регулярное выражение для удаления текста + INT

Строка может быть, например:

var=104&anothervar=10&page=14&name=stack 

И результат должен быть:

var=104&anothervar=10&name=stack 

Какое должно быть выражение для preg_replace?

+1

Попробуйте это preg_replace ('/ page = [0-9] + \ & /', '', $ str) – ke20

+0

отлично, что кажется работающим – luqita

+2

Почему вы говорите, что это работает и решение @ hjpotter (или мое) нет? –

ответ

-1

Вы должны использовать функцию preg_replace.

Пример:

$str = 'var=104&anothervar=10&page=14&name=stack'; 
$str = preg_replace('/&?page=\d+&?/', '', $str); 
echo $str; 

&page=\d+?

  • [&]? означает 0 или 1 вхождение & характера. (В случае, если это было первое Parametr амперсанд, не ampresand в начале)
  • \d+? означает, по меньшей мере, 1 или большее число после =

Выход:

var=104&anothervar=104&name=stack 
+0

Это не соответствует языку – hd1

+0

Что значит? – Robert

+0

Я имею в виду, что если вы находитесь в другой стране, которая не использует западные числа, ваше регулярное выражение не будет выполнено.Вы должны использовать \ d, как предложили другие – hd1

0
$result = preg_replace('/\bpage=\d+&/', '', $subject); 

word boundary\b необходимо, если вы хотите изменить "var=123&subpage=456&name=stack" в "var=123&subname=stack".

+0

Я знаю, что OP предоставил конкретную строку, но если параметр является последним? Или первый? – enenen

+0

@enenen: Он должен работать, если он первый, но вы правы - если он последний (или единственный), то это не сработает. –

+0

Это не работает, когда страница = x является последним параметром – luqita

2

Вы можете использовать parse_str и затем рекомбинируйте их, исключив параметр, который вам не нужен. Нет необходимости в регулярных выражениях (снова).

+0

Я думал об этом решении, но в этом случае это больше кода для записи, а 'preg_replace()' просто решает проблему. – Robert

+2

@Robert: Может быть, больше кода, но если он передает прояснение намерения, и если он «ожесточен» против случаев, то регулярное выражение не может покрыть (чего я ожидал бы «parse_str'), то это правильный путь идти. –

Смежные вопросы