【发布时间】:2012-11-12 07:23:51
【问题描述】:
我的 HTTP 标头中有 cookie,如下所示:
Set-Cookie: frontend=ovsu0p8khivgvp29samlago1q0; adminhtml=6df3s767g199d7mmk49dgni4t7; external_no_cache=1; ZDEDebuggerPresent=php,phtml,php3
我需要提取前端之后的 26 个字符的字符串(例如ovsu0p8khivgvp29samlago1q0)。以下正则表达式与我匹配:
(?<=frontend=)(.*)(?=;)
但是,我正在使用 Varnish Cache,并且只能使用正则表达式替换。因此,要提取该 cookie 值(26 个字符 frontend 字符串),我需要匹配与该模式不匹配的所有字符(因此我可以将它们替换为 '')。
我已经在 Google 上进行了相当多的搜索,但到目前为止还是一片空白。我已经尝试了以下
- 匹配与我想要的模式不匹配的字符:
[^((?<=frontend=)[A-Za-z0-9]{26}(?=;))]匹配随机字符,包括我想要保留的字符
如果有人能指出我正确的方向,或者指出我可能出错的地方,我将不胜感激。
【问题讨论】:
-
我猜
frontend可能出现在 cookie 字符串中的任何位置? -
@m.buettner 是的,没错。
标签: regex varnish varnish-vcl