符号“~”在VCL中是什么意思?

What does the symbol "~" mean in VCL?

我看到这用于 varnish vcl if 语句 "~"

if (req.url ~ "phpMyAdmin") {
    return (pass);
}

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

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

谁能解释一下它的实际含义。 它也是默认的 php 运算符吗?它和使用 ==

有什么区别

我认为php中没有“~”之类的符号。

已使用 php 文档检查过。

根据official documentation~匹配运算符

== 比较两个值,returns 如果它们相等则为真

~ 根据正则表达式检查值,returns 如果值匹配则为真

~ Match. Can either be used with regular expressions or ACLs.

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

Varnish uses Perl-compatible regular expressions (PCRE). To send flags to the PCRE engine, such as to do case insensitive matching, add the flag within parens following a question mark, like this:

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