次の形式の文字列を解析する単一の perl 互換正規表現を探しています。
param1=値1&...¶m2=値2&...
param1 と param2 のみの値を抽出します。しかし
- param2 は param1 に先行する場合があります
- param1 または param2 がない場合があります
- param1 または param2 (または両方) は、空の値を持つことができます。つまり、param1=&...
私はあなた自身のリクエストパーサーをわざわざ書くつもりはありません。を使用するだけCGI.pm
です。
/[?&]([^=]+)=([^=&]+)/g
これは、= で区切られた非 = 文字と一致し、それらを $1 と $2 に入れます。
また...
my %argsHash = split(/=|&/, $args);
これにより、うまく機能しているように見えるパラメーターと値を含むハッシュが得られますが、CGI.pm の方が優れたアイデアです。
/(.*?)=(.*?)&/
ループしてキャプチャし$1
、動作する$2
はずです
これが C++ の場合は、そのようなことを自分で再発明するのではなく、クエリ パラメーターを解析する既存の CGI ライブラリを使用することを検討してください。
そのようなライブラリの 1 つはcgic
、C 用の CGI ライブラリです: http://www.boutell.com/cgic/#functions