【发布时间】:2017-01-28 05:59:34
【问题描述】:
我需要构建正则表达式来匹配所有以 .还有像.well-known这样的白旗词..或类似的词..
现在我已经构建了一个完全相反的,这个只捕获这个。我试图找到一些用于反转的正则表达式符号,但我认为它不存在..
location ~ /^(\.well-known) {
deny all;
}
谢谢
【问题讨论】:
我需要构建正则表达式来匹配所有以 .还有像.well-known这样的白旗词..或类似的词..
现在我已经构建了一个完全相反的,这个只捕获这个。我试图找到一些用于反转的正则表达式符号,但我认为它不存在..
location ~ /^(\.well-known) {
deny all;
}
谢谢
【问题讨论】:
这是一个有效的表达式:
^(\.(?!well-known|other-forbidden-words|another-forbidden-word).+)$
只需将其他字词更改为您想要的白名单字词,并在需要时添加更多字词。
【讨论】:
嗯,,,
我想我找到了答案,感谢:
这是现在有效的测试:
https://regex101.com/r/mS2wC6/2
解决办法是这样的:
^(\.(?!well-known))
好吧,我想我现在得到了这个分组的东西..
hth, k
【讨论】:
. 开头且未列入白名单的词时,它与整个词不匹配。
^(\.(?!well-known)) 与 ^\.(?!well-known) 相同 - 除非您使用的是组 1。
您不必在 OR "|" 中添加单词健康)状况 你可以简单地做
$pattern = "/\.+(?:[a-zA-Z]|-)/";
接受任何以 .并包含 - 或字母。
【讨论】: