Cookie字符串:
ViewerUserId=134; ThisUserId=124; session=ntrhtrh5ttrg54htrth54654654trtrgtgtrgtr
我有Varnish
使用PCRE来缓存内容,我想使用正则表达式来匹配除ThisUserId
之后的值之外的所有内容,在这种情况下,它应该是{{1} }}。
我可以使用124
或124
提取ThisUserId=([0-9]+)\b
,但是,要在(?:^|;\s*)ThisUserId=(.*?)(?:;|,(?!\s))
中设置变量,我需要匹配除目标值以外的所有内容然后用空字符串替换匹配的字符串,如下所示:
Varnish
任何人都可以向我展示一个示例,在特定字符串后匹配除了未知值之外的任何内容吗?
答案 0 :(得分:1)
您可以使用反向引用来执行此操作。这意味着您使用括号选择正则表达式的某些部分,然后可以在替换字符串中引用它们。所以,例如:
set req.http.ThisUserId = regsub(req.http.Cookie,".*ThisUserId=(\d+).*","\1");
set req.http.ViewerUserId = regsub(req.http.Cookie,".*ViewUserId=(\d+).*","\1");