1

次の形式の文字列を解析する単一の perl 互換正規表現を探しています。

param1=値1&...¶m2=値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

これが C++ の場合は、そのようなことを自分で再発明するのではなく、クエリ パラメーターを解析する既存の CGI ライブラリを使用することを検討してください。

そのようなライブラリの 1 つはcgic、C 用の CGI ライブラリです: http://www.boutell.com/cgic/#functions

于 2009-06-01T02:04:42.910 に答える