【发布时间】:2015-12-18 15:34:43
【问题描述】:
Cookie 字符串:
ViewerUserId=134; ThisUserId=124; session=ntrhtrh5ttrg54htrth54654654trtrgtgtrgtr
我有Varnish,它使用 PCRE 来缓存内容,我想使用正则表达式来匹配除 ThisUserId 之后的值之外的所有内容,在这种情况下,它应该是 124。
我可以通过使用ThisUserId=([0-9]+)\b 或(?:^|;\s*)ThisUserId=(.*?)(?:;|,(?!\s)) 来提取124,但是,要在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
}
谁能给我一个例子来匹配特定字符串后面的未知值?
【问题讨论】:
标签: regex cookies varnish pcre