querystring.regfilter_except()

Returns the given URL but only keeps the parameters matching a regular expression. Groups within the regular expression are treated as if they were written as non-capturing groups. For example:

1
2
3
4
5
if (req.url.qs ~ "key-(?:[0-9]|\w)=(.*)-(.*)") { # captures to re.group.1 and re.group.2
  set req.url = querystring.regfilter_except(req.url, "key-([0-9]|\w)"); # does not capture
  set req.http.X-Key-1 = re.group.1;
  set req.http.X-Key-2 = re.group.2;
}

The "key-([0-9]|\w)" pattern shown here behaves as if it were written as a non-capturing group, "key-(?:[0-9]|\w)", ensuring the contents of re.group.1 and re.group.2 are not affected by the call to querystring.regfilter_except().

Format

STRING
querystring.regfilter_except(STRING, STRING)

Examples

1
set req.url = querystring.regfilter_except(req.url, "^(q|p)$");