【发布时间】:2017-10-26 00:42:27
【问题描述】:
我在 Varnish 配置语言中有以下正则表达式
^/abc/([a-zA-Z0-9\-\ ]*)-([0-9]+)
现在,我想在 Varnish 中获取正则表达式的值$2 部分(即[0-9]+)。
我怎样才能得到这个值?
【问题讨论】:
标签: regex varnish varnish-vcl
我在 Varnish 配置语言中有以下正则表达式
^/abc/([a-zA-Z0-9\-\ ]*)-([0-9]+)
现在,我想在 Varnish 中获取正则表达式的值$2 部分(即[0-9]+)。
我怎样才能得到这个值?
【问题讨论】:
标签: regex varnish varnish-vcl
在这种情况下,您可以使用regsub:
set req.url = regsub(req.url, "^/abc/([a-zA-Z0-9 -]*)-([0-9]+).*", "\2");
你匹配整个字符串,捕获你需要的部分,并用适当的反向引用替换。
【讨论】:
import std;?
regsub 应该仍然可以按预期工作。另外,您能否确认$2 是否有效?喜欢if (req.url ~ "^/abc/([a-zA-Z0-9 -]*)-([0-9]+)") { set req.http.Thing-I-Want = $2; }