2009-01-17 5 views
-1

Le code suivant est visuel de base, .NET, ASP ... tout ce qui précède? Quelqu'un peut-il me dire ce que ces deux fonctions/méthodes "Regex.Replace" me laisseront quand "strCookies" est égal au bloc de texte sous les deux fonctions Regex.Replace? Je crois que l'idée est simplement de capturer le code "sessionid" puis le code "cadata" avec ou sans le titre/clé de "sessionid" et "cadata". Ultimatly j'essaye de faire l'équivélent en php ... le problème est que j'essaye de déduire ce que j'ai besoin d'avoir exactement à la fin basé sur ce code. J'espère que cela a du sens. Merci! (Je voulais aussi ajouter que pour le code "cadata", je suis particulièrement confus quant à savoir si je suis supposé saisir les doubles guillemets entourant le code entier.Le sessionid n'a pas de guillemets doubles donc moins Je ne peux pas dire ce que fait la fonction Regex.Replace).Quelqu'un peut-il expliquer cette fonction .ASP aka VB "Regex.Replace" afin que je puisse le faire en PHP?


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

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


Netscape HTTP Cookie fichier http://www.netscape.com/newsref/std/cookie_spec.html Ce fichier a été généré b y libcurl! Éditez à vos risques et périls.

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

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

Répondre

1

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

qui renvoie la valeur d'un cookie nommé sessionid.

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

qui renvoie la valeur d'un cookie nommé cadata après unquoting il. Ainsi, la chaîne résultante serait stockée sans les guillemets.

0

I exécutez le code que vous avez montré dans votre question et pour un exemple donné de strCookie, le résultat est strCookie pour strCADataCookie et strSessionIDCookie. La raison en est qu'aucun remplacement n'est effectué parce que le motif n'est pas trouvé dans le strCookie.

Vous pouvez lire quelques informations sur les expressions régulières ici: http://www.regular-expressions.info/reference.html

Les expressions régulières de votre exemple sont un peu bizarre. Tout ce qui serait apparié par l'un ou l'autre motif serait remplacé par un seul caractère. $ 2 - fait référence à la valeur de la deuxième expression dans le crochet. "" - signifie ", d'abord" est juste un caractère d'échappement.

J'espère que cela vous aidera.

Questions connexes