Ответ 1
Если ваш двигатель regex поддерживает lookbehinds/lookaheads:
(?<==).*?(?=&)
В противном случае используйте это:
=(.*?)&
и группы захвата захвата 1.
Если ваш двигатель регулярного выражения не поддерживает нежелательное соответствие, замените .*?
на [^&]*
.
Но поскольку zzzzBov упоминается в комментарии, если вы разбираете префиксы GET
URL, обычно используются более эффективные собственные методы для разбора аргументов GET
.
В PHP, например, было бы:
<?php
$str = "first=value&arr[]=foo+bar&arr[]=baz";
parse_str($str);
echo $first; // value
echo $arr[0]; // foo bar
echo $arr[1]; // baz
parse_str($str, $output);
echo $output['first']; // value
echo $output['arr'][0]; // foo bar
echo $output['arr'][1]; // baz
?>
(Как найдено на php.net.)
Изменить: Появляется, что вы используете Javascript.
Javascript решение для разбора строки запроса в объект:
var queryString = {};
anchor.href.replace(
new RegExp("([^?=&]+)(=([^&]*))?", "g"),
function($0, $1, $2, $3) { queryString[$1] = $3; }
);
Источник: http://stevenbenner.com/2010/03/javascript-regex-trick-parse-a-query-string-into-an-object/