-1

下面的代码是visual basic、.NET、ASP... 以上都是?当“strCookies”等于两个 Regex.Replace 函数下方的文本块时,谁能告诉我这两个“Regex.Replace”函数/方法会给我留下什么?我相信这个想法只是简单地捕获“sessionid”代码,然后捕获“cadata”代码,带或不带“sessionid”和“cadata”的标题/键。最终,我正在尝试在 php 中进行等效操作...问题是我正在尝试根据此代码推断出我到底需要什么。希望这是有道理的。谢谢!(我还想为“cadata”代码添加这一点,我特别困惑我是否应该抓住整个代码周围的双引号。sessionid 没有 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

您示例中的正则表达式有点奇怪。任何一种模式匹配的所有内容都将被单个字符替换。$2 - 指括号中第二个表达式的值。"" - 表示“,第一个”只是一个转义字符。

希望这会帮助你。

于 2009-01-17T20:50:09.400 回答