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

时间:2015-12-18 03:30:24

标签: regex cookies varnish pcre

Cookie字符串:

ViewerUserId=134; ThisUserId=124; session=ntrhtrh5ttrg54htrth54654654trtrgtgtrgtr

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

我可以使用124124提取ThisUserId=([0-9]+)\b,但是,要在(?:^|;\s*)ThisUserId=(.*?)(?:;|,(?!\s))中设置变量,我需要匹配除目标值以外的所有内容然后用空字符串替换匹配的字符串,如下所示:

Varnish

任何人都可以向我展示一个示例,在特定字符串后匹配除了未知值之外的任何内容吗?

1 个答案:

答案 0 :(得分:1)

您可以使用反向引用来执行此操作。这意味着您使用括号选择正则表达式的某些部分,然后可以在替换字符串中引用它们。所以,例如:

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