我需要构建正则表达式以匹配所有以#开头的单词。还有像.well-known
..或类似的白旗词......
现在我已经构建了完全相反的那个,这个只捕获这一个。我试图找到一些反转的正则表达式符号,但我认为这不存在..
location ~ /^(\.well-known) {
deny all;
}
THX
答案 0 :(得分:1)
这是一个有效的表达方式:
^(\.(?!well-known|other-forbidden-words|another-forbidden-word).+)$
只需将其他单词更改为您想要的白名单词,并在需要时添加更多单词。
答案 1 :(得分:0)
hm ,,
我想我的答案归功于:
这是现在有效的测试:
https://regex101.com/r/mS2wC6/2
解决方案是:
^(\.(?!well-known))
好吧,我想我现在得到了这个分组的东西..
hth,k
答案 2 :(得分:0)
你不必在OR" |"中添加单词。条件 你可以简单地做到
$pattern = "/\.+(?:[a-zA-Z]|-)/";
接受以...开头的任何内容。并包含 - 或字母表。