-1

次のコードは、Visual Basic、.NET、ASP ... 上記のすべてですか? 「strCookies」が2つのRegex.Replace関数の下のテキストブロックと等しい場合、これら2つの「Regex.Replace」関数/メソッドが私に何を残すか教えてもらえますか? 「sessionid」コードをキャプチャしてから、「sessionid」と「cadata」のタイトル/キーの有無にかかわらず「cadata」コードをキャプチャするだけだと思います。最終的に、私はphpで同等のことをしようとしています...問題は、このコードに基づいて、最終的に正確に必要なものを推測しようとしていることです。それが理にかなっていることを願っています。ありがとう!(「cadata」コードにもそれを追加したかったのですが、コード全体を囲む二重引用符を取得していると思われるかどうかについて、特に混乱しています。セッションIDはそうではありません。t と 二重引用符を使用しないので、混乱が少なくなります。Regex.Replace 関数が何をしているのかわかりません)。


Dim strCADataCookie As String = Regex.Replace(strCookies, "(. )sessionid=(. )(,|;)(.*)", "$2")

Dim strSessionIDCookie As String = Regex.Replace(strCookies, "(. )cadata=""(. )""(.*)", "$2")


Netscape HTTP Cookie ファイル http://www.netscape.com/newsref/std/cookie_spec.html このファイルは libcurl によって生成されました! 自己責任で編集してください。

a.test.edu FALSE / FALSE 0 sessionid ca391d4e-69ad-4726-b00c-efa26f3d1594

a.test.edu FALSE / TRUE 0 cadata "2YUj33BRih9xeQqCL1PLAY+0EExSdDkGJdQg7KoUbca6OQxrgJi0AuuPBOEhCu7wlG2+2in5ilEE="

4

2 に答える 2

1

Regex.Replace(strCookies, "(.)sessionid=(.)(,|;)(.*)", "$2")

これは、sessionid という名前の Cookie の値を返します。

Regex.Replace(strCookies, "(.)cadata=""(.)""(.*)", "$2")

これは、引用符を外した後、cadata という名前の Cookie の値を返します。したがって、結果の文字列は引用符なしで保存されます。

于 2009-01-17T20:51:13.890 に答える
0

質問で示したコードを実行すると、特定の strCookie の例では、結果は strCADataCookie と strSessionIDCookie の両方で strCookie になります。理由は、strCookie でパターンが一致しないため、置換が行われないためです。

ここで正規表現に関する情報を読むことができます: http://www.regular-expressions.info/reference.html

あなたの例の正規表現は少し奇妙です。いずれかのパターンに一致するものはすべて、1 文字に置き換えられます。$2 - 括弧内の 2 番目の式の値を参照します。"" - 「最初の " は単なるエスケープ文字であることを意味します。

これがあなたを助けることを願っています。

于 2009-01-17T20:50:09.400 に答える