gpt4 book ai didi

regex - 匹配Cookie字符串中的所有内容,但特定键后的值除外

转载 作者:行者123 更新时间:2023-12-03 17:46:32 32 4
gpt4 key购买 nike

Cookie字串:

ViewerUserId=134; ThisUserId=124; session=ntrhtrh5ttrg54htrth54654654trtrgtgtrgtr

我有 Varnish,它使用PCRE来缓存内容,并且我想使用正则表达式来匹配除 ThisUserId之后的值以外的所有内容,在这种情况下,它应该是 124

我可以使用 124ThisUserId=([0-9]+)\b提取 (?:^|;\s*)ThisUserId=(.*?)(?:;|,(?!\s)),但是,要在 Varnish中设置一个变量,我需要匹配除目标值以外的所有内容,然后将匹配的字符串替换为空字符串,类似这样:
set req.http.ThisUserId = regsub(req.http.Cookie,"MATCH_EVEYRTHING_EXCEPT_THISUSERID","");

set req.http.ViewerUserId = regsub(req.http.Cookie,"MATCH_EVEYRTHING_EXCEPT_VIEWERUSERID","");

if(req.http.ViewerUserId == req.http.ThisUserId){
return(pass); // Don't cache if viewer is browsing his own pages
}

谁能给我展示一个示例,该示例匹配特定字符串后的未知值以外的任何内容?

最佳答案

您可以使用反向引用来做到这一点。这意味着您选择带有括号的正则表达式的某些部分,然后可以在替换字符串中引用它们。因此,例如:

set req.http.ThisUserId = regsub(req.http.Cookie,".*ThisUserId=(\d+).*","\1");
set req.http.ViewerUserId = regsub(req.http.Cookie,".*ViewUserId=(\d+).*","\1");

关于regex - 匹配Cookie字符串中的所有内容,但特定键后的值除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34348120/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com