1

我正在寻找一个可以解析以下形式的字符串的 perl 兼容正则表达式:

参数 1=值 1&...&参数 2=值 2&...

并仅提取 param1 和 param2 的值。但

  1. param2 可能在 param1 之前
  2. 可能没有 param1 或 param2
  3. param1 或 param2(或两者)可能有空值,即 param1=&...
4

4 回答 4

2

我不会费心编写您自己的请求解析器。只需使用CGI.pm.

于 2009-05-31T21:18:50.913 回答
2
/[?&]([^=]+)=([^=&]+)/g

这将匹配任何由 = 分隔的非 = 字符,并将它们放入 $1 和 $2 中。

或者...

my %argsHash = split(/=|&/, $args);

这会给你一个带有参数和值的散列,看起来效果很好,但是 CGI.pm 是一个更好的主意。

于 2009-05-31T21:20:13.733 回答
1

/(.*?)=(.*?)&/循环和捕获$1$2应该可以工作

于 2009-05-31T21:12:30.380 回答
0

If this is for C++, consider using an existing CGI library that parses the query parameters for you instead of reinventing that sort of thing yourself.

One such library is cgic, a CGI library for C: http://www.boutell.com/cgic/#functions

于 2009-06-01T02:04:42.910 回答