符号"〜"在VCL中的含义是什么?

Kas*_*ash 1 varnish

我看到这用于清漆vcl if语句"〜"

if (req.url ~ "phpMyAdmin") {
    return (pass);
}
Run Code Online (Sandbox Code Playgroud)

我知道它有点像==时间in_array()

if ( req.http.User-Agent ~ "(Android|iPhone|iPad|BlackBerry|SAMSUNG)") 
   return(pass);
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释它实际意味着什么.它也是一个默认的php运算符吗?它和使用之间有什么区别==

McM*_*ton 5

根据官方文档,~匹配运营商.

== 比较两个值,如果它们相等则返回true

~ 检查正则表达式的值,如果值匹配则返回true

匹配.可以与正则表达式或ACL一起使用.

# match an IP address against an ACL
if (client.ip ~ local) {
  return (pipe);
} 
Run Code Online (Sandbox Code Playgroud)

Varnish使用与Perl兼容的正则表达式(PCRE).要向PCRE引擎发送标志,例如进行不区分大小写的匹配,请在问号后面的parens中添加标记,如下所示:

# If host is NOT example dot com..
if (req.http.host !~ "(?i)example\.com$") {
    ...
}
Run Code Online (Sandbox Code Playgroud)