用于解析请求参数的正则表达式
我正在寻找一个与 perl 兼容的正则表达式,它可以解析以下形式的字符串:
param1=value1&...¶m2=value2&...
并仅提取 param1 和 param2 的值。 但
- param2可能先于param1
- 可能没有param1或param2
- param1或param2(或两者)可能有空值,即param1=&...
I am looking for a single perl compatible regex that would parse strings of the form:
param1=value1&...¶m2=value2&...
and extract values for param1 and param2 only. But
- param2 may precede param1
- There may be no param1 or param2
- param1 or param2 (or both) may have empty values, i.e. param1=&...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我不会费心编写你自己的请求解析器。 只需使用
CGI.pm
即可。I wouldn't bother writing your own request parser. Just use
CGI.pm
.这将匹配任何由 = 分隔的非 = 字符,并将它们放入 $1 和 $2 中。
或者...
这会给你一个带有参数和值的散列,看起来效果很好,但 CGI.pm 是一个更好的主意。
This will match any non = character separated by an = and put them into $1 and $2.
or...
This will give you a hash with parameters and values which appears to work well, but CGI.pm is all around a better idea.
/(.*?)=(.*?)&/
循环并捕获$1
和$2
应该可以工作/(.*?)=(.*?)&/
looping through and capturing$1
and$2
should work如果这是针对 C++,请考虑使用现有的 CGI 库来为您解析查询参数,而不是自己重新发明此类东西。
其中一个库是
cgic
,它是一个 CGI 库:http:// www.boutell.com/cgic/#functionsIf 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