小编Har*_*her的帖子

为什么在 Nginx 正则表达式中不需要转义“/”?

所以我终于把学习正则表达式变成了一件事情。通常在使用正则表达式时,需要用“\”转义分隔符(如“/”)。但是当我在 Nginx 中使用正则表达式时,似乎“/”被视为字面意思而不是分隔符。

Nginx 使用 PCRE 引擎来评估正则表达式,所以对我来说,你可以只抛出一个未转义的分隔符而没有任何后果,这对我来说毫无意义。

例如,下面的正则表达式允许单个 IP 地址并拒绝所有其他地址:

location ~ /\.serverfault {
    allow 1.2.3.4;
    deny all;
}
Run Code Online (Sandbox Code Playgroud)

但我认为它需要像这样才能正常工作:

location ~ \/\.serverfault {
    allow 1.2.3.4;
    deny all;
}
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

nginx regex pcre

12
推荐指数
1
解决办法
5650
查看次数

为什么我不能让 wget 将标准输出通过管道传输到 /dev/null?

当我运行此命令时,它按预期工作:

wget -p https://www.google.com/
Run Code Online (Sandbox Code Playgroud)

运行此命令后,我检查错误代码

echo $?
Run Code Online (Sandbox Code Playgroud)

这将返回 0,表示上次运行的命令没有遇到任何错误。

现在我运行:

wget -p https://www.google.com/ >/dev/null
Run Code Online (Sandbox Code Playgroud)

最后一个命令应该抑制标准输出 - 但它没有。那么发生了什么?这几乎似乎是 wget 特有的,因为我以前从未在使用其他命令时遇到过管道标准输出的问题。

还值得注意的是,如果您运行:

wget -p https://www.google.com/ 2>/dev/null
Run Code Online (Sandbox Code Playgroud)

所有输出都被抑制。有人会关心启发一个困惑的人吗?

linux ubuntu wget gnu

0
推荐指数
1
解决办法
4656
查看次数

标签 统计

gnu ×1

linux ×1

nginx ×1

pcre ×1

regex ×1

ubuntu ×1

wget ×1